如何在 Composer 中限制包对某个 PHP 版本的依赖?
How to limit a package's dependency to a certain PHP version in Composer?
我们的生产服务器是 PHP 5.5.24
。我需要的一个包 (vlucas/dotenv
) 需要 composer.json:
"symfony/polyfill-ctype": "^1.17"
不幸的是,该 symfony 软件包的 1.20 版需要 7.1,这会导致 Composer 的平台检查失败。我不能忽略 error/platform 检查,因为它会导致 PHP 5.5.
出现语法错误
这似乎不适用于子依赖项,仅适用于包本身:
"config": {
"platform": {
"php": "5.5.24"
}
}
我已经完全删除了 vendor
文件夹并进行了全新安装。升级服务器不是一个选项。
你可以只需要一个包的显式版本而没有任何额外的限制,这将 version-lock 其他依赖项。
手动添加 "symfony/polyfill-ctype": "1.17"
到您的 composer.json 文件,或从命令行使用 composer require symfony/polyfill-ctype:1.17
。
我会警告您,这可能会在您将来升级时让您头疼,因此请务必将其记录在某处。具体来说,您或其他人将来会查看代码并说“我们甚至没有使用它”,然后将其删除。
我们的生产服务器是 PHP 5.5.24
。我需要的一个包 (vlucas/dotenv
) 需要 composer.json:
"symfony/polyfill-ctype": "^1.17"
不幸的是,该 symfony 软件包的 1.20 版需要 7.1,这会导致 Composer 的平台检查失败。我不能忽略 error/platform 检查,因为它会导致 PHP 5.5.
出现语法错误这似乎不适用于子依赖项,仅适用于包本身:
"config": {
"platform": {
"php": "5.5.24"
}
}
我已经完全删除了 vendor
文件夹并进行了全新安装。升级服务器不是一个选项。
你可以只需要一个包的显式版本而没有任何额外的限制,这将 version-lock 其他依赖项。
手动添加 "symfony/polyfill-ctype": "1.17"
到您的 composer.json 文件,或从命令行使用 composer require symfony/polyfill-ctype:1.17
。
我会警告您,这可能会在您将来升级时让您头疼,因此请务必将其记录在某处。具体来说,您或其他人将来会查看代码并说“我们甚至没有使用它”,然后将其删除。