composer-php - 如何在不显式约束所有依赖包的情况下约束与 PHP 的兼容性
问题描述
我在我的composer.json
:
"php": ">= 5.6",
"symfony/http-foundation": "^3.0"
该配置的问题在于它将安装paragonie/random_compat
仅与 PHP 7 及更高版本兼容的 v9.99.99。但问题是我不希望我的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 命令的 PHP 版本如何,都使用
platform
设置来强制安装特定版本:composer.json
"config": { "platform": { "php": "5.6.38" } },
推荐阅读
- r - 如何在带有 ggplotly() 的闪亮应用程序中使用 plotlyProxy() 以使绘图渲染得更快
- sonarqube - 扫描分支时,SonarQube 不会在项目主页上显示代码覆盖率
- javascript - 制表符 - 基于另一个制表符过滤
- python - 用逗号从api中拆分数字?
- javascript - Vue JS - 计算属性未更新的问题
- python - How to add values to a dictionary of class in python
- docker - Apache Superset 在生产中重定向到 IP
- python - Python Netsnmp 和 snmpwalk
- reactjs - Nextjs 检查初始渲染是否在服务器端完成
- c++ - 使用包含指针的队列时的奇怪行为