2016-04-25 7 views
1

Здравствуйте, я использую файл composer.json для загрузки пакетов в мое приложение, однако есть некоторые вещи, которые я хотел бы знать. В моем composer.json файл у меня есть это:Использование файла Composer.json

"require": { 
     "php": ">=5.5.9", 
     "laravel/framework": "5.2.*", 
     "guzzlehttp/guzzle": "~6.x", 
     "barryvdh/laravel-debugbar": "^2.0", 
     "barryvdh/laravel-cors": "0.7.x", 
     "tymon/jwt-auth": "1.0.0-alpha.1", 
     "kodeine/laravel-acl": "[email protected]", 
     "intervention/image": "^2.x", 
     "jenssegers/date": "^3.0" 
    }, 

Я хотел бы знать, что эти символы означают: "^", "~", "х" рядом с номерами которые я знаю, являются номерами версий.

ответ

4

Они означают, что при запуске composer update эти пакеты будут обновляться только до выбранных версий. Например, если вы расскажете композитор laravel/framework": "5.2.*",, структура никогда не будет обновлен до 5.3, но только до последней 5.2.*

Оператор ~ лучше всего объяснить на примере: ~1.2 эквивалентно >=1.2 <2.0.0, в то время как ~1.2.3 является эквивалентно >=1.2.3 <1.3.0

оператор ^ ведет себя очень похоже, но он прилипает ближе к семантической версий, и позволит всегда неразрывные обновления. Например ^1.2.3 эквивалентно >=1.2.3 <2.0.0 как ни один из выпусков до 2.0 должны нарушать обратную совместимость

Вы можете задать шаблон с * шаблона. 1.0.* является эквивалентом из >=1.0 <1.1

https://getcomposer.org/doc/articles/versions.md

Смежные вопросы