#php #symfony #composer-php
#php #symfony #composer-php
Вопрос:
Возможно, я совершенно не прав в том, как работает Composer, но учитывая следующее composer.json
(часть Symfony, с некоторыми дополнительными требованиями, не показанными здесь):
"require": {
"php": ">=5.3.3",
"symfony/symfony": "~2.4",
"doctrine/orm": "dev-master",
"doctrine/dbal": "dev-master",
"doctrine/doctrine-bundle": "dev-master",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0",
"sensio/generator-bundle": "~2.3",
"incenteev/composer-parameter-handler": "~2.0",
// my requirements here
}
Когда я запускаю composer update
, я получаю symfony / symfony 2.5 вместо ~ 2.4 (то есть AFAIK 2.4.1, 2.4.2 и т.д.).
Комментарии:
1. Здесь тот же вопрос. Я добавляю, чтобы обновить свой код до 2.5 в моем prod env. Было довольно странно.
2. Также должен быть вопрос: почему нет? Всегда спрашивайте с обеих сторон.
Ответ №1:
~2.4
эквивалентно >=2.4,<3.0
. Если вы хотите остаться с 2.4.x
branch, вам придется использовать 2.4.*
.
Вы можете прочитать больше о номерах версий на страницах документации Composer: https://getcomposer.org/doc/01-basic-usage.md#package-versions
Комментарии:
1. Моя ошибка… Я был убежден, что ~ 2.4 эквивалентно 2.4. *.
2. Просто для справки: эквивалент 2.4.* в ~ синтаксис ~ 2.4.0