Gérer les dépendances avec Composer
Ce guide couvre les tâches courantes de gestion de dépendances PHP avec Composer : ajouter un paquet publié ou non, brancher un dépôt local pour un override, contraindre les versions selon l'environnement, et automatiser des actions après installation.
Prérequis : un composer.json existant et Composer installé. Le guide suppose que vous savez déjà lancer une commande composer.
Ajouter une dépendance publiée
Si le paquet est disponible sur le registre public (Packagist), il suffit de le requérir :
composer require <vendor>/<paquet>:^<version>
Ajouter une dépendance depuis un dépôt Git (VCS)
Quand le paquet n'est pas publié sur le registre public, déclarez son dépôt Git dans composer.json.
- Ajouter le dépôt VCS :
"repositories": [ { "type": "vcs", "url": "<URL_DU_DEPOT_GIT>" } ]
- Requérir la dépendance :
composer require <vendor>/<paquet>:^<version>
Ajouter une dépendance locale (dépôt path)
Pour surcharger un paquet avec une copie locale (développement d'un paquet en parallèle du projet consommateur), utilisez un dépôt de type path.
- Déclarer le chemin relatif vers le paquet local :
"repositories": [ { "type": "path", "url": "../<paquet-local>" } ]
- Requérir la branche de développement :
composer require <vendor>/<paquet>:dev-<branche>
Choisir une contrainte de version selon l'environnement
- En développement : une contrainte de branche (
dev-<branche>) est acceptable pour suivre le dernier code. - En production : privilégiez un tag de release et une contrainte stable (
^X.Y.Z) pour garantir la reproductibilité.
Déployer sans requérir
Sur un environnement de déploiement, ne lancez pas composer require. Le flux recommandé :
- Récupérer le tag applicatif ciblé (checkout du tag).
- Installer les dépendances figées :
composer install
composer install respecte le composer.lock et n'altère pas les contraintes ; composer require/composer update sont réservés au poste de développement.
Automatiser des actions post-installation
Composer déclenche des scripts sur certains événements. Utile pour, par exemple, synchroniser des fichiers fournis par un paquet vers un emplacement précis du projet après chaque installation ou mise à jour.
"scripts": { "post-install-cmd": [ "@php bin/<votre-script>.php" ], "post-update-cmd": [ "@php bin/<votre-script>.php" ] }
Bonnes pratiques pour un tel script :
- rendre l'opération idempotente (nettoyer la cible avant de la reconstruire) ;
- ne dépendre que de chemins relatifs au projet ;
- échouer explicitement si une source attendue est absente.
Vérifier
composer validatecontrôle la cohérence ducomposer.json.- Après un
composer installde déploiement, vérifiez quecomposer.lockn'a pas été modifié (aucune dérive de version).