web-dev-qa-db-fra.com

Comment toujours utiliser l'indicateur ignore-platform-reqs lors de l'exécution de composer?

Sur ma machine locale, j'ai php v7.0.3. Un de mes projets dépend de PHP v5.5.

Donc, comme prévu, une simple exécution de composer install plante:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ~5.5 but your PHP version (7.0.3) does not satisfy that requirement.

Je sais que je peux ignorer la plateforme via:

composer install --ignore-platform-reqs

pourtant j'oublie souvent d'ajouter le drapeau. Pourtant, puisque l'application s'exécute à l'intérieur d'un conteneur Docker, un php non compatible peut installer les dépendances tout aussi bien.

Je me demande donc s'il existe un moyen de faire en sorte que mon local composer suppose toujours --ignore-platform-reqs pour ne pas avoir à le taper.

J'aime éviter de définir un alias et le faire fonctionner au niveau de la configuration composer.

16
k0pernikus

Il est recommandé de fausse version php , plutôt que d'ignorer les exigences de la plate-forme. Ajouter

"platform":{"php":"5.5"}

à ton ~/.composer/config.json Ou utiliser composer config -g -e pour le modifier.

Un exemple de configuration suffisante pour une fausse version php:

{
    "config": {
        "platform":{
            "php":"5.5"
        }
    }
}

Il peut cependant avoir beaucoup plus d'options.

15
Alex Blex

Vous pouvez ajouter alias composer="composer --ignore-platform-reqs" à ton .bash_profile mais cela cassera les commandes qui ne reconnaissent pas cette option (par exemple. composer outdated).

Personnellement, j'ai:

alias composer="composer --ignore-platform-reqs"
alias composer_orig="/usr/local/bin/composer"

Parce que la plupart du temps je veux --ignore-platform-reqs, mais je peux toujours utiliser composer_orig chaque fois que je vois

[Symfony\Component\Console\Exception\RuntimeException]

L'option "--ignore-platform-reqs" n'existe pas.

5
pamelus