我在composer.json
中得到了这个要求:
"php": ">= 5.6",
"symfony/http-foundation": "^3.0"
该配置的问题在于它将安装paragonie/random_compat
v9.99.99,该版本仅与 PHP 7 及更高版本兼容。但问题是我不希望我的composer.lock
文件需要 PHP 7,我希望它仍然与 PHP 5.6 兼容。
我找到的解决方案是跟踪哪个包正在拉取此依赖项,一旦找到它,我就将其添加到我的要求中:
"paragonie/random_compat": "~2.0"
但我想知道是否有更好的方法可以做到这一点:以某种方式告诉我接受 PHP 5.6 以上的所有版本,但我不接受强制使用 PHP 7 的软件包?
如果你想使composer.lock
与 PHP 5.6 兼容,你至少有两个选择来实现这一点:
使用 PHP 5.6 进行
composer update
- 您应该能够在操作系统上安装多个版本的 PHP 并像这样运行 Composer:/path/to/php6.5 /path/to/composer update
使用
composer.json
中的platform
设置强制安装特定版本,而不考虑用于运行 Composer 命令的 PHP 版本:"config": { "platform": { "php": "5.6.38" } },