>我有一个使用"satooshi/php-coveralls"包来计算TravisCI覆盖率的软件包。Coveralls composer.json 需要:
"require": {
"php": ">=5.3.3",
"ext-json": "*",
"ext-simplexml": "*",
"guzzle/guzzle": "^2.8|^3.0",
"psr/log": "^1.0",
"symfony/config": "^2.1|^3.0",
"symfony/console": "^2.1|^3.0",
"symfony/stopwatch": "^2.0|^3.0",
"symfony/yaml": "^2.0|^3.0"
},
我的软件包不直接使用这些软件包中的任何一个,但我支持 PHP 5.4,这反过来又需要使用所有这些软件包的较低版本。有没有办法告诉作曲家使用 guzzle/guzzle:^2.8 而不是 ^3.0,symfony/config:^2.1 而不是 ^3.0 等。目前,当我运行作曲家安装时,安装了更高的版本,因此在 PHP 5.4 上构建失败
运行作曲家时有一个首选最低选项。以下是更多详细信息
https://evertpot.com/testing-composer-prefer-lowest/
你可以使用 ~ ("波浪号")
"guzzle/guzzle": "~2.8",
这意味着
>= 2.8 < 3.0.0
也
"guzzle/guzzle": "^2.8",
应该工作
甚至更多 2. 但小于 3 的任何更高版本。
"guzzle/guzzle": "^2.*",
或
"guzzle/guzzle": "~2.*",
https://getcomposer.org/doc/articles/versions.md