Comment résoudre l'erreur PHP : "Root composer.json requires an old version of php but your php version does not satisfy that requirement" ?
Composer est un gestionnaire de dépendances à destination des projets écrits en langage PHP. Il permet d'installer des librairies ou des frameworks facilement afin de les intégrer à votre code. Composer permet de gérer différentes versions pour les librairies PHP ainsi que les différentes versions de PHP que vous pouvez installer. Le message d'erreur "Root composer.json requires an old version of php but your php version does not satisfy that requirement" indique un souci lié à un conflit entre la version de PHP installée et celle d'au moins une librairie.
Composer peut être configuré à partir du fichier "composer.json". Ce fichier doit être placé à la racine du projet et indique comment sont installées les dépendances de votre projet. Le message d'erreur "Root composer.json requires an old version of php but your php version does not satisfy that requirement" indique que ce fichier de configuration a des exigences qui ne sont pas satisfaites par votre environnement PHP. Il existe 2 différences possibles : soit votre version de PHP est trop ancienne, soit elle est trop récente. Si votre version est trop ancienne, vous pouvez mettre à jour votre version de PHP pour correspondre à la version requise. Si elle est trop récente, vous pouvez vérifier l'écriture de votre fichier "composer.json". C'est la directive "require" qui indique la version de PHP requise. Si vous utilisez la notation ">=", cela ne fonctionne que pour la version majeure de PHP en cours.
//Cette écriture fonctionne pour PHP 7.2, 7.3 et 7.4 mais pas 8.0 ou 8.1 "require" { "php": ">=7.2" }
Si vous souhaitez inscrire plusieurs versions majeures, vous devez les séparer avec l'opérateur "||". L'opérateur "^" est un équivalent de l'opérateur ">=".
// Cette écriture fonctionne pour PHP 7.2 ou plus et 8.0 ou plus "require" { "php": "^7.2||^8.0" }
Si vous souhaitez passer outre cette directive, dans un cas comme dans l'autre, Composer propose l'option "--ignore-platform-reqs". Elle indique à Composer d'ignorer les prérequis de plateformes. Cette option est à utiliser à vos risques et périls, cela peut provoquer des erreurs fatales durant l'exécution de votre code.
composer install --ignore-platform-reqs