Композитор. Как установить конкретную версию пакета в зависимости от версии php пользователя? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть две версии моего пакета: для php7 и для php5. Можно ли заставить composer определять при установке пакета, какая версия php у пользователя, и в зависимости от этого устанавливать правильную версию моего пакета?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Установите только один композитор, вы можете получить доступ к этому композитору с другой версией php

/usr/bin/php /usr/local/bin/composer
/usr/bin/php7.1 /usr/local/bin/composer
/usr/bin/php7.0 /usr/local/bin/composer
0 голосов
/ 19 ноября 2018

TL; DR: Да.

По умолчанию composer использует версию исполняемого файла php, чтобы определить, какую версию пакета установить. Это можно переопределить в разделе config файла composer.json, например:

"config": {
    "vendor-dir": "vendor",
    "platform": {
        "php": "5.6"
    }
 }

Когда кому-то требуется ваш пакет, эта версия сравнивается с той, которая указана в списке требований вашего пакета composer.json:

"require": {
    "php": ">=7.2.0",
}

Так что, если, например, версия 1 вашего пакета требует php 5.6, а версия 2 требует php 7.0, у того, кто запускает composer require your-package с php 5.6, будет установлена ​​версия 1. Если кто-то запустит его с более старой версией, чем требуется для любой из ваших версий, он получит сообщение об ошибке, в котором говорится, что компоновщик не может найти пакет, который удовлетворяет всем требованиям, в том числе версия php.

...