如何在运行作曲家时始终使用忽略平台要求标志


How to always use ignore-platform-reqs flag when running composer?

在我的本地机器上,我有php v7.0.3。我的一个项目依赖于 php v5.5。

因此,正如预期的那样,一个简单的composer install崩溃:

Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - This package requires php ~5.5 but your PHP version (7.0.3) does not satisfy that requirement.

我知道我可以通过以下方式忽略该平台:

composer install --ignore-platform-reqs

但我经常忘记添加标志。然而,由于应用程序在 docker 容器内运行,不匹配的 php 可以同样很好地安装依赖项。

所以我想知道是否有办法让我的本地作曲家总是假设--ignore-platform-reqs,以便不必输入它。

我喜欢避免设置别名并让它在作曲家配置级别工作。

建议伪造 PHP 版本,而不是忽略平台要求。加:

"platform":{"php":"5.5"}

到您的~/.composer/config.json或使用composer config -g -e进行编辑。

伪造 PHP 版本和扩展的配置示例:

{
    "config": {
        "platform":{
            "php": "8.1",
            "ext-bcmath": "8.1"
        }
    }
}

有关配置平台部分的更多选项可以在 Composer 文档中找到。

更新:从 v2.3.0 开始,您可以使用环境变量。請參閱Yakatz的回答

Composer v2 中的新功能允许您有选择地忽略平台要求。

composer install --ignore-platform-req=php

作曲家已经有一个--ignore-platform-reqs选项(注意reqs中的s),但它忽略了所有平台要求,包括PHP版本,扩展(ext-*)和作曲家插件api。

新的--ignore-platform-req选项可用于设置编辑器可以忽略的特定要求。

Composer 现在支持(从版本 2.3.0 开始)检查环境变量以设置--ignore-platform-reqs

创建一个环境变量COMPOSER_IGNORE_PLATFORM_REQS=1忽略所有或COMPOSER_IGNORE_PLATFORM_REQ=something忽略something作为要求。

您可以将

alias composer="composer --ignore-platform-reqs"添加到.bash_profile,但它会破坏无法识别此选项的命令(例如。 composer outdated )。

我个人有:

alias composer="composer --ignore-platform-reqs"
alias composer_orig="/usr/local/bin/composer"

因为大多数时候我想要--ignore-platform-reqs,但我每次看到时仍然可以使用composer_orig

[Symfony''Component''Console''Exception''RuntimeException]

"--

ignore-platform-reqs"选项不存在。

在 Windows 上,更新 composer.bat(在 C:''ProgramData''ComposerSetup''bin 下)并将--ignore-platform-reqs添加到 composer 命令中。

要更新,您可以以管理员身份打开文本编辑器> Ctrl + O>打开作曲家.bat

如果您不希望对所有项目进行全局更改,请创建一个新的.bat文件并在 PHPStorm> 设置>作曲家中使用它