Composer php 如何在不显式约束所有依赖包的情况下约束与PHP的兼容性

Composer php 如何在不显式约束所有依赖包的情况下约束与PHP的兼容性,composer-php,Composer Php,我在我的composer.json中得到了这个要求: "php": ">= 5.6", "symfony/http-foundation": "^3.0" 该配置的问题在于,它将安装仅与PHP7及更高版本兼容的paragonie/random_compatv9.99.99。但问题是,我不希望我的composer.lock文件需要PHP7,我希望它仍然与PHP5.6兼容 我找到的解决方案是跟踪哪个包在拉这个依赖项,一旦找到它,我就将它添加到我的需求中: "paragonie/random_

我在我的
composer.json中得到了这个要求:

"php": ">= 5.6",
"symfony/http-foundation": "^3.0"
该配置的问题在于,它将安装仅与PHP7及更高版本兼容的
paragonie/random_compat
v9.99.99。但问题是,我不希望我的
composer.lock
文件需要PHP7,我希望它仍然与PHP5.6兼容

我找到的解决方案是跟踪哪个包在拉这个依赖项,一旦找到它,我就将它添加到我的需求中:

"paragonie/random_compat": "~2.0"

但是我想知道是否有更好的方法来做到这一点:不知何故告诉我,我接受PHP5.6以上的所有版本,但我不接受会强制使用PHP7的软件包?

如果你想使
composer.lock
与PHP5.6兼容,你至少有两个选项来实现这一点:

  • 将PHP 5.6用于
    composer update
    -您应该能够在您的操作系统上安装多个版本的PHP并运行composer,如下所示:

    /path/to/php6.5 /path/to/composer update
    
  • 使用
    composer.json
    中的设置强制安装特定版本,而不考虑用于运行composer命令的PHP版本:

    "config": {
        "platform": {
            "php": "5.6.38"
        }
    },
    

  • 如果要使
    composer.lock
    与PHP5.6兼容,至少有两个选项:

  • 将PHP 5.6用于
    composer update
    -您应该能够在您的操作系统上安装多个版本的PHP并运行composer,如下所示:

    /path/to/php6.5 /path/to/composer update
    
  • 使用
    composer.json
    中的设置强制安装特定版本,而不考虑用于运行composer命令的PHP版本:

    "config": {
        "platform": {
            "php": "5.6.38"
        }
    },
    

  • 这是您项目的
    composer.json
    ,或者只是一个库/依赖项?它来自我的项目()这是您项目的
    composer.json
    ,或者只是一个库/依赖项?它来自我的项目()