【问题标题】:Composer. How to install a specific version of package based on user php version?作曲家。如何根据用户 php 版本安装特定版本的包?
【发布时间】:2019-04-21 14:50:06
【问题描述】:

我的包有两个版本:php7 和 php5。是否可以让composer在安装包时确定用户拥有哪个版本的php,并据此安装我的包的正确版本?

【问题讨论】:

  • 问题不完整吗?也许有两个composer.json 文件。只是说说而已。

标签: php composer-php dependency-management


【解决方案1】:

只安装一个作曲家,你可以用不同的php版本访问这个作曲家

/usr/bin/php /usr/local/bin/composer
/usr/bin/php7.1 /usr/local/bin/composer
/usr/bin/php7.0 /usr/local/bin/composer

【讨论】:

    【解决方案2】:

    TL;DR:是的。

    默认情况下,composer 使用 php 可执行文件的版本来确定要安装哪个版本的包。这可以在 composer.json 的 config 部分中被覆盖,例如:

    "config": {
        "vendor-dir": "vendor",
        "platform": {
            "php": "5.6"
        }
     }
    

    当有人需要你的包时,这个版本会与你的包的 composer.json 的需求列表中指定的版本进行比较:

    "require": {
        "php": ">=7.2.0",
    }
    

    因此,例如,如果您的包的版本 1 需要 php 5.6,而版本 2 需要 php 7.0,则使用 php 5.6 运行 composer require your-package 的人将安装版本 1。如果有人使用比您的任何版本要求的旧版本运行它,他们会收到一条错误消息,指出 composer 找不到满足所有要求的包,php 版本就是其中之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-07
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      相关资源
      最近更新 更多