在我的本地机器上,我有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> 设置>作曲家中使用它