如何在不明确约束所有依赖包的情况下约束与PHP的兼容性

问题描述 投票:0回答:1

我在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-php
1个回答
2
投票

如果你想让composer.lock与PHP 5.6兼容,你至少有两个选择来实现:

  1. 使用PHP 5.6 for composer update - 您应该能够在您的操作系统上安装多个版本的PHP并运行Composer,如下所示: /path/to/php6.5 /path/to/composer update
  2. 使用platform中的composer.json设置强制安装特定版本,无论用于运行Composer命令的PHP版本如何: "config": { "platform": { "php": "5.6.38" } },
© www.soinside.com 2019 - 2024. All rights reserved.