作曲家。如何根据用户的php版本安装特定版本的包?

Zha*_*iev 2 php dependency-management composer-php

我的包有两个版本:php7 和 php5。是否可以让作曲家在安装包时确定用户拥有哪个版本的 php,并根据此安装我的包的正确版本?

Bar*_*ada 6

长话短说:是的。

默认情况下,composer 使用 php 可执行文件的版本来确定要安装哪个版本的包。这可以在composer.json的部分中被覆盖config,例如:

"config": {
    "vendor-dir": "vendor",
    "platform": {
        "php": "5.6"
    }
 }
Run Code Online (Sandbox Code Playgroud)

当有人需要您的包时,系统会将此版本与包的composer.json 的需求列表中指定的版本进行比较:

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

因此,例如,如果您的软件包的版本 1 需要 php 5.6,而版本 2 需要 php 7.0,composer require your-package则使用 php 5.6 运行的人将安装版本 1。如果有人使用比您的任何版本要求的旧版本运行它,他们会收到一条错误,指出 Composer 找不到满足所有要求的包,php 版本就是其中之一。