Как ограничить совместимость с PHP без явного ограничения всех зависимых пакетов - PullRequest
0 голосов
/ 16 сентября 2018

Я получил это требование в моем composer.json:

"php": ">= 5.6",
"symfony/http-foundation": "^3.0"

Проблема с этой конфигурацией состоит в том, что она установит paragonie/random_compat v9.99.99, который совместим только с PHP 7 и более. Но дело в том, что я не хочу, чтобы мой composer.lock файл требовал PHP 7, я хочу, чтобы он по-прежнему был совместим с PHP 5.6.

Решение, которое я нашел, состоит в том, чтобы отследить, какой пакет вытягивал эту зависимость, и, как только я его нашел, я добавил это к своим требованиям:

"paragonie/random_compat": "~2.0"

Но мне интересно, нет ли лучшего способа сделать это: как-то сказать, что я принимаю все версии выше PHP 5.6, но я не принимаю пакеты, которые заставили бы иметь PHP 7?

1 Ответ

0 голосов
/ 18 сентября 2018

Если вы хотите сделать composer.lock совместимым с PHP 5.6, у вас есть как минимум две возможности для этого:

  1. Используйте PHP 5.6 для composer update - вы должны иметь возможность установить несколько версий PHP в вашей ОС и запустить Composer следующим образом:

    /path/to/php6.5 /path/to/composer update
    
  2. Используйте platform настройки в composer.json для принудительной установки для конкретной версии независимо от версии PHP, используемой для запуска команд Composer:

    "config": {
        "platform": {
            "php": "5.6.38"
        }
    },
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...