如何在不明确约束所有依赖包的情况下约束与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兼容,你至少有两个选择来实现:
- 使用PHP 5.6 for
composer update
- 您应该能够在您的操作系统上安装多个版本的PHP并运行Composer,如下所示:/path/to/php6.5 /path/to/composer update
- 使用
platform
中的composer.json
设置强制安装特定版本,无论用于运行Composer命令的PHP版本如何:"config": { "platform": { "php": "5.6.38" } },
以上是关于如何在不明确约束所有依赖包的情况下约束与PHP的兼容性的主要内容,如果未能解决你的问题,请参考以下文章
在不创建新视图或知道特定父视图的情况下向 UIButton 类添加约束
在不破坏约束的情况下将 UIView 的子视图移植到 UIScrollView?