Composer PHP : maîtriser le gestionnaire de dépendances (guide 2026)
Composer est le gestionnaire de dépendances incontournable de l'écosystème PHP. Ce guide complet couvre l'installation, composer.json, l'autoloading PSR-4, les scripts, les versions et les bonnes pratiques en équipe.
Composer a révolutionné le développement PHP depuis 2012. Aujourd’hui, aucun projet PHP sérieux ne peut s’en passer. Voici tout ce que vous devez savoir pour en tirer le maximum.
Installation et premiers pas
Installation globale sur Linux/Mac :
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Créer un nouveau projet : composer init (interactif) ou ajouter directement un package : composer require symfony/http-foundation.
Le fichier composer.json
C’est le manifeste de votre projet. Les sections les plus importantes :
{
"name": "monentreprise/monprojet",
"require": {
"php": ">=8.2",
"symfony/console": "^7.0",
"guzzlehttp/guzzle": "^7.5"
},
"require-dev": {
"phpunit/phpunit": "^11.0",
"phpstan/phpstan": "^1.10"
},
"autoload": {
"psr-4": {
"App\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\Tests\": "tests/"
}
}
}
composer.lock : ne jamais l’ignorer
Le fichier composer.lock enregistre les versions exactes de toutes vos dépendances (directes et transitives). Il garantit que tous vos développeurs et vos serveurs installent exactement les mêmes versions. Committez toujours composer.lock dans votre git. Utilisez composer install (qui respecte le lock) et non composer update (qui met tout à jour) sur les déploiements en production.
Gestion des versions
La notation des contraintes de version :
^7.0— versions compatibles : 7.x.x mais pas 8.0.0 (par défaut pour les packages)~7.2— 7.2.x uniquement, pas 7.3>=7.0 <8.0— fourchette explicite7.2.3— version exacte (déconseillé, bloque les correctifs)
Utilisez ^ par défaut — il suit la sémantique versioning (semver) et vous donne les correctifs et mises à jour mineurs automatiquement.
Autoloading PSR-4
L’autoloading Composer mappe les namespaces PHP aux dossiers de votre projet. Avec la config PSR-4 ci-dessus, la classe AppServicesArticleService est automatiquement chargée depuis src/Services/ArticleService.php. Après avoir modifié la section autoload, lancez composer dump-autoload. En production, ajoutez l’optimisation : composer dump-autoload --optimize.
Scripts Composer
Définissez des commandes réutilisables dans la section scripts :
"scripts": {
"test": "phpunit --testdox",
"analyse": "phpstan analyse src --level=8",
"cs": "php-cs-fixer fix --diff",
"ci": ["@cs", "@analyse", "@test"],
"post-install-cmd": ["php artisan migrate --force"]
}
Lancez avec composer test, composer ci, etc. Le hook post-install-cmd s’exécute automatiquement après composer install.
Packages privés avec Satis
Pour des packages internes à votre entreprise, Satis crée un dépôt Composer privé. Configurez-le sur un serveur interne ou utilisez un service comme Private Packagist. Dans composer.json, référencez votre repository privé :
"repositories": [
{"type": "composer", "url": "https://packages.votre-entreprise.fr"}
],
Audit de sécurité
composer audit compare vos dépendances installées contre la base de données SADb (Security Advisories Database). Si une vulnérabilité est trouvée, Composer indique le CVE et la version corrigée. Intégrez cette commande dans votre pipeline CI/CD pour bloquer les déploiements vulnérables.