我希望我的composer.json告诉composer如果系统运行php7.x则安装一个版本的库,如果系统运行php8.x则安装另一个版本
原因是该库的 1.x 版本与 php7 兼容,而 2.x 版本仅与 php8 兼容。就像这样:
if:{php: ^7, require:{mylib:^1.0}}
else:{php: ^8, require{mylib:^2.0}}
Run Code Online (Sandbox Code Playgroud)
那太好了。
我们的一些客户由于各种原因无法如此快地将他们的服务器切换到 php8,但我们希望继续前进。
Composer版本约束语法支持多个约束连接||以表示“逻辑 OR”。这允许您编写诸如“1.x 高于 1.5,或 2.x 高于 2.1”之类的约束:
{
"require": {
"somevendor/somelib": "^1.5 || ^2.1"
}
}
Run Code Online (Sandbox Code Playgroud)
当有人运行时composer update,Composer 将安装可用的最高版本,该版本既满足此约束,又满足库本身以及正在安装的任何其他内容指定的约束。
只要该库的 2.x 版本在其composer.json 中声明它们需要 PHP 8,它们就不会安装在 PHP 7 下,而是会选择 1.x 版本。
显然,您需要确保您的代码实际上与两个版本的库兼容,例如定期在两个版本上运行测试。
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |