Переопределить зависимость базовой базы PHP в композиторе

Я пытаюсь установить Laravel 5.1 на хост, который имеет только PHP 5.5.6. Хотя я попросил клиента обновиться, это может быть невозможно/выполнимо.

Итак, я получаю:

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

on composer.phar install.

Есть ли способ сделать установку композитора, которая игнорирует эту зависимость?

Я думаю, что это должно быть безопасно, так как есть только исправления ошибок от 5.5.6 до 5.5.9.

Ответы

Ответ 1

Сообщение об ошибке указывает требование от основного composer.json. Требование к версии может быть просто адаптером:

"require": {
    "php": ">=5.5",

После изменения версии, как это, я получаю:

  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].

Используя следующий фрагмент в composer.json, можно моделировать версию php

[...]
"config": {
    "preferred-install": "dist",
    "platform": {
        "php": "5.5.9"
    }
}

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

платформа

Позволяет вам поддельные пакеты платформы (PHP и расширения), чтобы вы могли эмулировать производственный env или определять свою целевую платформу в конфиге. Пример: { "php": "5.4", "ext-something": "4.0" }.

Не забудьте запустить composer.phar update после этого

Ответ 2

Вы можете использовать опцию --ignore-platform-reqs для команд композитора, таких как install, update и т.д.

- ignore-platform-reqs: игнорировать php, hhvm, lib- * и ext- * требования и принудительно установить, даже если локальная машина не выполняет эти. См. Также вариант конфигурации платформы.

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

Итак, вы можете попробовать

composer install --ignore-platform-reqs