Composer:如何让作曲家安装一个依赖旧版PHP的版本?

时间:2017-08-25 19:05:40

标签: php composer-php

有没有办法让作曲家不安装任何需要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,那么它应该适用于两个平台。有没有办法做到这一点,然后告诉作曲家根据该变化重新安装依赖项?

1 个答案:

答案 0 :(得分:2)

运行

$ composer require ocramius/proxy-manager:~2.0.4

将软件包安装在适用于PHP 7.0.19和PHP 7.1.5的版本中。

注意这里使用~运算符的方式与使用^运算符相反:2.0.42.0行中支持所需运算符的最新版本PHP版本以及使用~运算符并指定major.minor.patch只会允许更新补丁版本(此处为>=2.0.4<2.1.0)。

  

2.0.4

     

需要

     
      
  • php:7.0.0 - 7.0.5 || ^ 7.0.7
  •   

供参考,见:

相关问题