有没有办法让作曲家不安装任何需要PHP版本低于实际安装版本的依赖项?我尝试使用:
"platform": {
"php": "7.0.19"
}
正在运行
composer install
但它没有将依赖关系恢复到旧版本(或者根本不做任何事情)。
以下是我的总体情况:
我有一个Symfony项目,我在两个环境中工作。
一个拥有PHP 7.0.19,另一个拥有PHP 7.1.5。
使用PHP 7.1.5在服务器上启动了该项目。
当我尝试使用7.0.19在服务器上部署项目并运行composer install时,它会抛出一个错误,说没有可解析的包集:
[geoff.maddock@myserver project]$ composer install --no-scripts Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for ocramius/proxy-manager 2.1.1 -> satisfiable by ocramius/proxy-manager[2.1.1].
- ocramius/proxy-manager 2.1.1 requires php ^7.1.0 -> your PHP version (7.0.19) does not satisfy that requirement. Problem 2
- doctrine/migrations v1.5.0 requires ocramius/proxy-manager ^1.0|^2.0 -> satisfiable by ocramius/proxy-manager[2.1.1].
- doctrine/migrations v1.5.0 requires ocramius/proxy-manager ^1.0|^2.0 -> satisfiable by ocramius/proxy-manager[2.1.1].
- ocramius/proxy-manager 2.1.1 requires php ^7.1.0 -> your PHP version (7.0.19) does not satisfy that requirement.
- Installation request for doctrine/migrations v1.5.0 -> satisfiable by doctrine/migrations[v1.5.0].
因此7.1.5上安装的ocramius / proxy-manager的版本符合
的后半部分" ^ 1.0 | 2.0 ^"
要求,但无法在7.0.19上得到满足。
如果我可以告诉作曲家只安装^ 1.0,那么它应该适用于两个平台。有没有办法做到这一点,然后告诉作曲家根据该变化重新安装依赖项?
答案 0 :(得分:2)
运行
$ composer require ocramius/proxy-manager:~2.0.4
将软件包安装在适用于PHP 7.0.19和PHP 7.1.5的版本中。
注意这里使用~
运算符的方式与使用^
运算符相反:2.0.4
是2.0
行中支持所需运算符的最新版本PHP版本以及使用~
运算符并指定major.minor.patch
只会允许更新补丁版本(此处为>=2.0.4
和<2.1.0
)。
2.0.4
需要
- php:7.0.0 - 7.0.5 || ^ 7.0.7
供参考,见: