Composer

Composer c’est quoi ?

Composer Logo

Composer est un gestionnaire de packets PHP créé en 2012. Venant remplacer directement 🕸️PEAR, Composer est aujourd’hui le plus utilisé.

On peut retrouver la liste des packets sur Packagist.org

Un paquet, c’est une librairie bibliothèque de code écrite par des développeurs pour répondre à un besoin, faire gagner du temps, apporter quelque chose à la communauté.

Par ailleurs, Composer intègre des fonctions d’autoload qui respectent les standards PSR-4.

On verra leur utilisation dans la suite du cours.


Installer composer

Composer peut être installé dans un dossier local en suivant les instructions suivantes :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
mkdir bin
php composer-setup.php  --install-dir=bin --filename=composer
chmod a+x bin/composer
rm composer-setup.php

Toutes les commandes Composer peuvent ainsi être saisie en tapant :

php bin/composer COMMAND

Par exemple :

php bin/composer about
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.8.12 2025-09-19 13:41:59

Usage

Quand on récupère un projet, si le projet à un fichier composer.json, la première étape consiste à faire un composer install

Pour ajouter une dépendance, il faut utiliser la commande composer require [DEP]

Pour supprimer une dépendance, il faut utiliser la commande composer remove [DEP]

Si vous souhaitez mettre à jour une dépendance, il faut utiliser la commande composer update [DEP]

Pour mettre à jour toutes les dépendances, il faut utiliser la commande composer update


Quelle est la différence entre un composer.json et un composer.lock ?

Composer.json contient la version idéale qu’on veut

{
"symfony/asset": "^5.4",
"symfony/console": "^5.4",
"symfony/dotenv": "^5.4",
"symfony/expression-language": "^5.4",
"symfony/flex": "^2.2",
"symfony/form": "^5.4"
}

Composer.lock contient la version réellement installée

{
"name": "symfony/console",
"version": "v5.4.19",
"source": {
    "type": "git",
    "url": "https://github.com/symfony/console.git",
    "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740"
}
}

Autoload

Composer permet de charger automatiquement les classes PHP en respectant les standards PSR-4. Pour cela, il faut ajouter dans le composer.json la section suivante :

"autoload": {
    "psr-4": {
        "MonNamespace\\": "src/"
    }
}

Puis, dans le code PHP, il faut inclure le fichier vendor/autoload.php généré par Composer :

require 'vendor/autoload.php';
use MonNamespace\MaClasse;

Après avoir modifié le composer.json, il faut exécuter la commande composer dump-autoload pour générer le fichier autoload.php.


Ressources