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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不明确约束所有依赖包的情况下约束与PHP的兼容性相关的知识,希望对你有一定的参考价值。

我在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兼容,你至少有两个选择来实现:

  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" } },

以上是关于如何在不明确约束所有依赖包的情况下约束与PHP的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

在不创建新视图或知道特定父视图的情况下向 UIButton 类添加约束

如何在不知道其表的情况下删除约束?

如何在不违反主键约束的情况下插入具有循环引用的实体框架

在不破坏约束的情况下将 UIView 的子视图移植到 UIScrollView?

我如何在不使用Delphi约束的情况下确定泛型类型为nil?

eclipse如何在不联网的情况下引入dtd约束文件