Composer est un logiciel gestionnaire de dépendances libre écrit en PHP. Il permet à ses utilisateurs de déclarer et d'installer les bibliothèques dont le projet principal a besoin. Le développement a débuté en avril 2011 et a donné lieu à une première version sortie le 1er mars 2012. Développé au début par Nils Adermann et Jordi Boggiano[4] (qui continuent encore aujourd'hui à le maintenir), le projet est maintenant disponible sur la plateforme GitHub[5]. Il est ainsi développé par toute une communauté[6].
Le logiciel Composer est à l’initiative d'un portage en PHP du logiciel Libzypp satsolver[7] d'Open Suse.
Le logiciel Composer est fortement inspiré du logiciel npm pour Node.js et de bundler[8] pour Ruby[9].
Installation
Le dépôt principal de Composer est le site web Packagist[10], qui permet notamment la recherche de bibliothèques et leur entreposage centralisé.
Le fichier binaire Composer est distribué sous la forme d'un lanceur, installable après un simple téléchargement.
$ curl -sS https://getcomposer.org/installer | php
Avec PHP
$ php -r "readfile('https://getcomposer.org/installer');" | php
Fonctionnement
Commandes
Composer dispose de plusieurs paramètres dont[11] :
require
: ajoute la bibliothèque en paramètre au fichier composer.json et l'installe.
install
: installe toutes les bibliothèques du composer.json. Il s'agit de la commande à lancer pour installer les dépendances d'un dépôt PHP[12].
update
: met à jour les bibliothèques du composer.json, selon les versions permises qui y sont mentionnées.
remove
: désinstalle une bibliothèque et la retire du composer.json.
Définition des bibliothèques
Exemple du composer.json généré par la commande :
composer require monolog/monolog
{
"require": {
"monolog/monolog": "1.2.*"
}
}
Versions
Les symboles permettant d'autoriser plusieurs versions des dépendances sont les suivants[13] :
Symbole
|
Rôle (placé avant un numéro de version)
|
Exemple
|
>= |
permet d'en étendre le numéro. De même on trouve les symboles >, <, <=. |
"php": ">=5.5.9" inclut PHP 7.
|
!= |
exclut une version. |
|
- |
définit une plage de versions. |
|
¦¦ |
ajoute des versions possibles. |
"symfony/symfony": "2.8 ¦¦ 3.0" regroupe uniquement ces deux versions.
|
* |
étend à toutes les sous-versions. |
"symfony/symfony": "3.1.*" comprend la 3.1.1.
|
~ |
étend aux versions suivantes du même niveau. |
"doctrine/orm": "~2.5" concerne aussi la 2.6 mais pas la 2.4 ni la 3.0.
|
^ |
fait la même chose que tilde sous réserve qu'il y ait une compatibilité ascendante. |
|
Références
Voir aussi
Sur les autres projets Wikimedia :
Articles connexes
Liens externes
|
Personnalités |
|
![]() |
Ressources |
|
Implémentations |
|
Frameworks web |
|
Test |
|
Mapping objet-relationnel |
|
Environnement de développement |
|
Toolkit |
|