如何在运行composer时始终使用ignore-platform-reqs标志?

k0p*_*kus 13 php configuration composer-php hhvm

在我的本地机器上,我有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.
Run Code Online (Sandbox Code Playgroud)

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

composer install --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

但我经常忘记添加旗帜.然而,由于应用程序在docker容器内运行,不匹配的php可以安装依赖项一样好.

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

我喜欢避免设置别名并让它在composer配置级别上工作.

Ism*_*oev 40

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

composer install --ignore-platform-req=php

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

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


yak*_*atz 19

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

创建一个环境变量COMPOSER_IGNORE_PLATFORM_REQS=1以忽略全部或根据要求COMPOSER_IGNORE_PLATFORM_REQ=something忽略。something

  • 这应该是截至 2022 年的最佳答案 (4认同)

Ale*_*lex 11

建议伪造php版本,而不是忽略平台要求.加

"platform":{"php":"5.5"}
Run Code Online (Sandbox Code Playgroud)

你的~/.composer/config.jsoncomposer config -g -e用来编辑它.

虚假php版本的足够配置示例:

{
    "config": {
        "platform":{
            "php":"5.5"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它可能有更多的选择.


pam*_*lus 7

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

我个人有:

alias composer="composer --ignore-platform-reqs"
alias composer_orig="/usr/local/bin/composer"
Run Code Online (Sandbox Code Playgroud)

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

[Symfony\Component\Console\Exception\RuntimeException]

“--ignore-platform-reqs”选项不存在。

  • 您可以通过运行“\composer”来绕过别名。 (3认同)