我正在PHP项目中使用doctrine/dbal
(v2.4。*)包。我的生产服务器运行PHP v5.6。
我今天早上跑了composer update
,更新了我的 composer.lock 文件。现在,当我部署到生产时,我看到了:
Problem 1
- Installation request for doctrine/inflector v1.2.0 -> satisfiable by doctrine/inflector[v1.2.0].
- doctrine/inflector v1.2.0 requires php ^7.0 -> your PHP version (5.6.14) does not satisfy that requirement.
Problem 2
- doctrine/inflector v1.2.0 requires php ^7.0 -> your PHP version (5.6.14) does not satisfy that requirement.
- doctrine/common v2.4.3 requires doctrine/inflector 1.* -> satisfiable by doctrine/inflector[v1.2.0].
- Installation request for doctrine/common v2.4.3 -> satisfiable by doctrine/common[v2.4.3].
特别是这些:
doctrine / common v2.4.3需要doctrine / inflector 1. * - >可以通过doctrine / inflector [v1.2.0]来满足。
doctrine / inflector v1.2.0需要php ^ 7.0 - >你的PHP版本 (5.6.14)不满足该要求
这意味着,即使dbal
已过时,也需要最新的common
,而common
需要最新的inflector
包。问题是inflector
启动取决于PHP7来运行。
Composer中是否有任何方法可以将软件包的更新限制为特定PHP版本支持的软件包?就像说:“请更新你能做的,但只有服务器的PHP版本足够。”
答案 0 :(得分:4)
使用platform
文件中的composer.json
选项定义生产环境使用的PHP版本,如下所示:
{
"config": {
"platform": {
"php": "5.6.14"
}
}
}