【问题标题】:Skip composer PHP requirement跳过作曲家 PHP 要求
【发布时间】:2014-11-27 16:40:23
【问题描述】:

我们正在使用 PHPCI 和 composer。运行 PHPCI 的服务器是 PHP 5.3。

对于一个项目,我们使用 composer 添加了 Facebook PHP SDK。它需要 PHP 5.4。 Composer 被 PHPCI 触发并被执行。但是因为 CI 服务器刚刚获得 PHP 5.3 composer 失败并显示错误消息:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

这当然会让我在 PHPCI 中的构建失败。

是否有可能跳过此要求?也许通过向 composer.json 添加一个选项?还是 composer.phar 调用的参数?

【问题讨论】:

    标签: php composer-php versioning


    【解决方案1】:

    对于很多命令,你可以告诉composer绕过php版本检查,参数“--ignore-platform-reqs”:

    composer COMMAND --ignore-platform-reqs
    

    这将绕过 php 版本规范。

    请注意该软件可能工作或不工作:php 版本规范存在,因为代码中的某处至少需要指定的 php 版本,因此如果您使用该代码,软件将中断。

    【讨论】:

    • --ignore-platform-reqs 并不适用于所有可用的命令,正如您的回答所暗示的那样。
    【解决方案2】:

    我找到了选项:

    composer install --ignore-platform-reqs
    

    忽略平台要求(php & ext-packages)。


    编辑:你可以跳过平台检查,但 Composer 将根据给定的 PHP 版本获取包。因此,当您需要 composer 在依赖解析期间模拟 PHP 版本时,您可以(并且应该!)在您的 composer.json 中使用它:

    {
        "config": {
           "platform": {
               "php": "5.6.6"
           }
        }
    }
    

    https://getcomposer.org/doc/06-config.md#platform

    【讨论】:

    • 如何忽略私有存储库。有些包需要私人仓库。
    • 太棒了。当 php cli 尚未反映版本更改时,它很有用。
    • 在 Composer 2 中有一个新命令,可以使用:php.watch/articles/composer-ignore-platform-req
    • 如果你想确保它只忽略php版本要求,你也可以使用--ignore-platform-reqs=php
    • 实际上是--ignore-platform-req php(单数),并且只在 Composer 2 之前有效。
    【解决方案3】:

    如果有任何东西需要特定版本的 PHP,它将无法在较低版本的 PHP 中运行。绕过 PHP 要求时,您仍然会收到错误。

    顺便说一句,PHP 5.3 不再维护,我强烈建议更新 PHPCI 服务器。

    【讨论】:

    • 首先我想知道如何绕过PHP要求。
    • 你不能也不会因为代码在较低的php版本中不起作用
    • 会的。只是 CI 服务器获得了低 PHP 版本。包含 facebook SDK 的服务器在 PHP 5.4 上运行。它只是关于 ci 服务器,它将所有内容打包成一个很好的可部署 zip 文件。
    • 虽然 PHP 5.3 不再由核心 PHP 开发人员维护,但一些 Linux 版本仍然支持它,并且会持续一段时间。 Ubuntu 12.04 LTS 附带 5.3,并在 2017 年 4 月之前受支持 (wiki.ubuntu.com/LTS)。迁移到 14.04 是最好的升级路径,但存在需要大量工作来修复的重大更改(Apache 2.4、php-fpm 等)。因此,很多互联网仍在使用 5.3.x。
    • true 不幸的是,99% 的软件包,即使是受到良好支持的软件包也没有适当的要求。它比其他任何东西都更能表明开发人员正在使用什么。
    猜你喜欢
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2012-11-10
    • 2015-03-11
    相关资源
    最近更新 更多