为什么作曲家更新symfony到2.5,但它是"symfony/symfony":"~2.4"?

gre*_*emo 5 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
}
Run Code Online (Sandbox Code Playgroud)

当我运行时,composer update我得到symfony/symfony 2.5而不是~2.4(即AFAIK 2.4.1,2.4.2等).

Cro*_*zin 10

~2.4相当于>=2.4,<3.0.如果你想留在2.4.x分公司,你将不得不使用2.4.*.

您可以在Composer的文档页面上阅读有关版本号的更多信息:https://getcomposer.org/doc/01-basic-usage.md#package-versions

  • 仅供记录:〜语法中的2.4.*相当于~2.4.0 (2认同)