覆盖composer中的PHP基本依赖项

Ale*_*lex 35 php composer-php

我尝试在只有PHP 5.5.6的主机上安装Laravel 5.1.虽然我要求客户升级,但这可能不可行/不可行.

所以我得到:

- This package requires php >=5.5.9 but your PHP version (5.5.6)
   does not satisfy that requirement.
Run Code Online (Sandbox Code Playgroud)

composer.phar install.

有没有办法做一个忽略这种依赖的作曲家安装?

我认为它应该是安全的,因为只有从5.5.6到5.5.9的错误修复.

Jak*_*zak 87

您可以使用--ignore-platform-reqs的命令作曲家像选项install,update等等.

--ignore-platform-reqs:忽略php,hhvm,lib-*和ext-*要求并强制安装,即使本地计算机不满足这些要求.另请参见platform config选项.

https://getcomposer.org/doc/03-cli.md

所以你可以试试

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


Ale*_*lex 33

错误消息表示来自main的要求composer.json.版本要求可以只是适配器:

"require": {
    "php": ">=5.5",
Run Code Online (Sandbox Code Playgroud)

更改了这样的版本后,我得到:

  Problem 1
    - Installation request for classpreloader/classpreloader 2.0.0 -> satisfiable by classpreloader/classpreloader[2.0.0].
    - classpreloader/classpreloader 2.0.0 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 2
    - Installation request for laravel/framework v5.1.17 -> satisfiable by laravel/framework[v5.1.17].
    - laravel/framework v5.1.17 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 3
    - Installation request for laravelcollective/html v5.1.6 -> satisfiable by laravelcollective/html[v5.1.6].
    - laravelcollective/html v5.1.6 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
  Problem 4
    - laravel/framework v5.1.17 requires php >=5.5.9 -> your PHP version (5.5.6) or "config.platform.php" value does not satisfy that requirement.
    - jenssegers/agent v2.1.7 requires illuminate/support ~4.0|~5.0 -> satisfiable by laravel/framework[v5.1.17].
    - Installation request for jenssegers/agent v2.1.7 -> satisfiable by jenssegers/agent[v2.1.7].
Run Code Online (Sandbox Code Playgroud)

使用以下代码片段composer.json,可以模拟php版本

[...]
"config": {
    "preferred-install": "dist",
    "platform": {
        "php": "5.5.9"
    }
}
Run Code Online (Sandbox Code Playgroud)

Doc:https://getcomposer.org/doc/06-config.md#platform

平台

允许您伪造平台软件包(PHP和扩展),以便您可以模拟生产环境或在配置中定义目标平台.示例:{"php":"5.4","ext-something":"4.0"}.

不要忘记composer.phar update在此之后运行

  • 如果您的基本PHP运行与运行代码的版本不同的版本,则此处提到的平台包的模拟也会有所帮助.例如,我运行Plesk的一台服务器的基本PHP版本为5.3.x,虚拟站点的代码在5.4.x上运行.如果没有这个,集中安装的作曲家只会选择基本版本,因此在尝试使用依赖于不同PHP版本的软件包时会产生问题 (2认同)

pra*_*ant 10

我遇到了同样的问题,使用以下命令解决了这个问题:

composer config platform.php 7.2.22 
Run Code Online (Sandbox Code Playgroud)

*** 您可以根据自己的情况更换 PHP 版本。


Bir*_*ira 9

根composer.json需要php ^7.3,但您的php版本(8.0.0)不满足该要求。

composer install --ignore-platform-reqs