Vous en avez marre de gérer les librairies PHP à la main ? De chercher le bon fichier zip, de l’extraire au bon endroit et de gérer les mises à jour une par une ? Vous voulez un outil simple pour automatiser tout ça ?
Composer est le gestionnaire de dépendances fait pour vous. Il s’occupe de trouver, télécharger et intégrer les librairies (ou « paquets ») dont votre projet a besoin. Ce guide vous montre exactement comment l’installer et faire vos premiers pas, avec des commandes claires et des exemples concrets pour démarrer un projet PHP moderne sans prise de tête.
Comment Installer Composer : Les Commandes Directes (Windows, macOS & Linux)
On va droit au but. Pas de longue théorie, voici les commandes à copier-coller dans votre terminal pour installer Composer. L’installation dépend de votre système d’exploitation.
Sur macOS et Linux (la méthode universelle)
Ouvrez votre terminal et exécutez ces deux commandes l’une après l’autre. La première télécharge l’installeur, la seconde exécute l’installation.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
La deuxième commande rend Composer accessible depuis n’importe quel dossier de votre machine. C’est beaucoup plus pratique. Une fois terminé, supprimez le fichier d’installation qui ne sert plus à rien :
php -r "unlink('composer-setup.php');"
Pour vérifier que tout fonctionne, tapez simplement `composer` dans votre terminal. Si une liste de commandes apparaît, l’installation est réussie.
Sur Windows
Sur Windows, c’est encore plus simple car il y a un installeur graphique. Pas besoin de taper de commande dans un premier temps.
- Rendez-vous sur la page de téléchargement du site officiel de Composer.
- Cliquez sur le lien `Composer-Setup.exe` pour le télécharger.
- Lancez l’exécutable et suivez les instructions. L’installeur va détecter automatiquement votre installation de PHP.
L’avantage de cette méthode est qu’elle ajoute automatiquement Composer à votre PATH système. Vous pourrez donc lancer la commande `composer` depuis n’importe quel terminal (CMD, PowerShell, Git Bash) sans configuration supplémentaire.
Vos 4 Premières Commandes Composer : Le Guide de Démarrage
Maintenant que Composer est installé, vous allez voir qu’il ne faut que quatre commandes pour gérer 90% des situations. Elles permettent de démarrer un projet, d’ajouter des dépendances et de les maintenir à jour.
Voici un tableau qui résume tout ce qu’il faut savoir pour commencer.
| Commande | À quoi ça sert ? | Exemple d’utilisation | Fichiers affectés |
|---|---|---|---|
| composer init | Crée le fichier composer.json de manière interactive en vous posant des questions sur votre projet. |
composer init |
composer.json (créé) |
| composer require | Ajoute une nouvelle dépendance au projet, la télécharge et met à jour les fichiers de configuration. | composer require monolog/monolog |
composer.json, composer.lock, dossier vendor/ |
| composer install | Installe toutes les dépendances listées dans composer.lock (s’il existe) ou composer.json. C’est la commande à lancer quand on récupère un projet existant. |
composer install |
dossier vendor/ |
| composer update | Met à jour toutes les dépendances vers leurs dernières versions autorisées par composer.json et régénère le fichier composer.lock. |
composer update |
composer.lock, dossier vendor/ |
Le workflow typique pour un nouveau projet est simple : vous lancez `composer init` une seule fois au début. Ensuite, à chaque fois que vous avez besoin d’une nouvelle librairie, vous utilisez `composer require nom/du/paquet`. C’est tout.
Si vous rejoignez un projet qui utilise déjà Composer, la première chose à faire après avoir cloné le code est de lancer `composer install`. Cette commande va lire le fichier `composer.lock` et télécharger les versions exactes de toutes les dépendances nécessaires.
Anatomie du Fichier `composer.json` : Ce Que Vous Devez Savoir
Le fichier `composer.json` est le cœur de votre projet avec Composer. C’est un simple fichier texte au format JSON qui décrit votre application et ses dépendances. C’est lui que vous allez modifier (souvent via la commande `require`) pour dire à Composer de quels paquets vous avez besoin.
Voici un exemple de fichier `composer.json` avec les sections les plus importantes expliquées.
JSON (JavaScript Object Notation) est un format de texte utilisé pour stocker et échanger des données. Il utilise des paires clé-valeur, comme ` »name »: « mon-projet »`. C’est devenu un standard sur le web.
Le fichier est structuré en plusieurs sections, mais trois sont essentielles au début.
Les sections « require » et « require-dev »
Ce sont les plus importantes. Elles listent les dépendances de votre projet.
require: Contient la liste des paquets nécessaires au fonctionnement de votre application en production. Par exemple, une librairie pour gérer les logs ou un framework comme Laravel.require-dev: Contient la liste des paquets utiles uniquement pour le développement. Pensez aux outils de test (comme PHPUnit) ou de débogage. Ces paquets ne seront pas installés si on lance l’installation en mode production.
La section « autoload »
La section `autoload` est l’une des plus puissantes de Composer. Elle vous évite d’avoir à écrire des `require ‘fichier.php’;` partout dans votre code. Composer génère un fichier qui s’occupe de charger automatiquement les classes quand vous en avez besoin.
Voici un exemple commenté d’un fichier `composer.json` complet pour un petit projet.
{
"name": "mon-auteur/mon-projet",
"description": "Une description simple de mon projet PHP.",
"type": "project",
"license": "MIT",
"authors": [
{
"name": "Votre Nom",
"email": "votre.email@example.com"
}
],
"require": {
"php": "^8.1",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"MonProjet\\": "src/"
}
}
}
Dans cet exemple, on demande PHP version 8.1 ou supérieure, la librairie `monolog` pour la production, et `phpunit` pour le développement. La section `autoload` indique que toutes les classes du namespace `MonProjet` se trouvent dans le dossier `src/`.
Comprendre le rôle de Packagist
Vous vous demandez peut-être : « Où est-ce que Composer va chercher tous ces paquets ? ». La réponse est simple : sur Packagist.
Il faut voir Packagist, le dépôt de paquets par défaut, comme le Google Play Store ou l’App Store, mais pour les librairies PHP. C’est un immense dépôt public où les développeurs du monde entier publient leurs paquets. Quand vous faites `composer require monolog/monolog`, Composer interroge Packagist pour trouver le paquet, connaître les versions disponibles et le télécharger.
Vous pouvez vous rendre sur le site de Packagist pour explorer les milliers de paquets disponibles. C’est une ressource précieuse pour découvrir de nouveaux outils pour vos projets.
Commandes Utiles pour Aller Plus Loin
Au-delà des quatre commandes de base, quelques autres commandes vous seront utiles au quotidien pour gérer votre projet plus efficacement.
composer show: Cette commande liste tous les paquets installés dans votre projet, avec leur version et une courte description. C’est très pratique pour avoir une vue d’ensemble. Vous pouvez aussi l’utiliser pour voir les détails d’un paquet spécifique (`composer show monolog/monolog`).composer remove: Comme son nom l’indique, cette commande permet de supprimer proprement une dépendance. Elle va la retirer du fichier `composer.json`, la désinstaller du dossier `vendor` et mettre à jour le fichier `composer.lock`.composer create-project: Une commande très puissante pour démarrer un projet basé sur un squelette existant. Par exemple, pour créer un nouveau projet Laravel, vous n’avez qu’à taper `composer create-project laravel/laravel nom-du-projet`. Composer va télécharger le framework et toutes ses dépendances, prêt à l’emploi.
FAQ – Tutoriel Composer PHP
Voici les réponses aux questions les plus courantes que se posent les débutants avec Composer.
Cette erreur signifie que votre terminal ne trouve pas l’exécutable de Composer. C’est presque toujours un problème de PATH. Assurez-vous que le dossier où Composer a été installé (par exemple `/usr/local/bin` sur Linux/macOS) est bien dans la variable d’environnement PATH de votre système.
Quelle est la différence entre `require` et `require-dev` ?
Les paquets dans `require` sont essentiels pour que votre application fonctionne (ex: un framework). Ceux dans `require-dev` sont des outils pour vous, le développeur (ex: un outil de test). Quand vous déployez votre application en production, vous installez généralement sans les dépendances de développement avec la commande `composer install –no-dev`.
Pourquoi ai-je un fichier `composer.lock` ?
Le fichier `composer.lock` est une « photographie » des versions exactes de chaque dépendance installée à un moment donné. Quand vous lancez `composer install`, Composer lit ce fichier en priorité pour installer précisément ces versions. Cela garantit que tous les développeurs de l’équipe et le serveur de production utilisent exactement le même code, évitant les bugs liés à des versions de paquets différentes.
Dois-je versionner le dossier `vendor` avec Git ?
La réponse courte est : NON, JAMAIS. Le dossier `vendor` contient toutes les librairies téléchargées. Il peut être très lourd et il est généré automatiquement. La seule chose que vous devez versionner avec Git sont les fichiers `composer.json` et `composer.lock`. N’importe qui peut ensuite récupérer votre projet et lancer `composer install` pour recréer le dossier `vendor` à l’identique.
Comment trouver la bonne contrainte de version pour un paquet ?
Utilisez le caret `^` (accent circonflexe). Par exemple, `^3.0` signifie « accepte n’importe quelle version de 3.0.0 jusqu’à 3.99.9, mais pas la 4.0 ». C’est la méthode recommandée car elle vous permet de bénéficier des mises à jour mineures (corrections de bugs, sécurité) sans risquer de casser votre code avec une nouvelle version majeure.
