跳过作曲家 PHP 要求
Posted
技术标签:
【中文标题】跳过作曲家 PHP 要求【英文标题】:Skip composer PHP requirement 【发布时间】: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 调用的参数?
【问题讨论】:
【参考方案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% 的软件包,即使是受到良好支持的软件包也没有适当的要求。它比其他任何东西都更能表明开发人员正在使用什么。以上是关于跳过作曲家 PHP 要求的主要内容,如果未能解决你的问题,请参考以下文章