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

a0x5cqrl  于 2023-01-08  发布在  PHP
关注(0)|答案(5)|浏览(368)

在我的本地机器上,我有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也可以很好地安装依赖项。
因此,我想知道是否有一种方法可以使我的本地 composer 总是假设--ignore-platform-reqs,以便不必键入它。
我喜欢避免设置别名,让它在 composer 配置级别上工作。

vcudknz3

vcudknz31#

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

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

添加到您的~/.composer/config.json或使用composer config -g -e进行编辑。
一个例子,充分的配置伪造php版本:

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

不过,它可能有更多的选择。

**更新:**从v2.3.0开始,您可以使用环境变量。请参见Yakatz' answer

nle07wnf

nle07wnf2#

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

第一个月
Composer已经有了一个--ignore-platform-reqs选项(注意reqs中的s),但是它忽略了所有的平台要求,包括PHP版本、扩展(ext-*)和composer-plugin-API。
新的--ignore-platform-req选项可用于设置Composer可以忽略的特定要求。

oo7oh9g9

oo7oh9g93#

您可以将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\组件\控制台\异常\运行时异常]
“--ignore-platform-reqs”选项不存在。

zour9fqk

zour9fqk4#

Composer现在支持(从2.3.0版开始)检查环境变量以设置--ignore-platform-reqs
创建一个环境变量COMPOSER_IGNORE_PLATFORM_REQS=1以忽略全部,或创建一个环境变量COMPOSER_IGNORE_PLATFORM_REQ=something以忽略something作为要求。

fhg3lkii

fhg3lkii5#

在Windows上,更新composer.bat(位于C:\ProgramData\ComposerSetup\bin下)并将--ignore-platform-reqs添加到编写器命令。
要更新,您可以以管理员身份打开文本编辑器〉Ctrl + O〉打开composer.bat
如果您不想对所有项目进行全局更改,请创建一个新的.bat文件,并在PHPSorm〉Settings〉composer中使用它

相关问题