Composer (logiciel)
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 [7] (qui continuent encore aujourd'hui à le maintenir), le projet est maintenant disponible sur la plateforme GitHub[8]. Il est ainsi développé par toute une communauté[9].
Pour les articles homonymes, voir Composer.
Développé par |
Nils Adermann, Jordi Boggiano, Communauté[1] |
---|---|
Première version | [2] |
Dernière version | 2.3.5 ()[3],[4] |
Version avancée | 1.1.0-RC ()[5],[6] |
Dépôt | github.com/composer/composer |
Assurance qualité | Intégration continue |
Écrit en | PHP |
Système d'exploitation | Multiplateforme |
Type | Application-level package manager (d) |
Licence | Licence MIT |
Site web | getcomposer.org |
Le logiciel Composer est à l’initiative d'un portage en PHP du logiciel Libzypp satsolver[10] d'Open Suse.
Le logiciel Composer est fortement inspiré du logiciel npm pour Node.js et de bundler[11] pour Ruby[12].
Installation
Le dépôt principal de Composer est le site web Packagist[13], 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.
Avec cURL
$ 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[14] :
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[15].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[16] :
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
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Composer (software) » (voir la liste des auteurs).
- « Dependency Manager for PHP. Contribute to composer/composer development by creating an account on GitHub », sur GitHub,
- « https://github.com/composer/composer/blob/master/CHANGELOG.md »
- « https://github.com/composer/composer/releases/tag/2.3.5 », (consulté le )
- « https://getcomposer.org/changelog/2.3.5 » (consulté le )
- « https://github.com/composer/composer/releases/tag/1.1.0-RC » (consulté le )
- « https://github.com/composer/composer/blob/master/CHANGELOG.md#110-rc---2016-04-29 » (consulté le )
- getcomposer.org Site web de composer
- github.com/composer/composer Code source de composer sur GitHub
- github.com/composer/composer/graphs/contributors Liste des contributeurs sur GitHub
- « openSUSE:Libzypp satsolver - openSUSE », sur en.opensuse.org
- « Bundler: The best way to manage a Ruby application's gems », sur bundler.io
- getcomposer.org/doc/00-intro.md Site web de composer, page d'introduction
- Packagist Packagist : Dépôt principal de Composer
- « Command-line interface / Commands - Composer », sur getcomposer.org
- Olivier Van Hoof, « Moderniser une application PHP Zend Framework 1 avec le conteneur de dépendances de Symfony 2 »
- « Versions and constraints - Composer », sur getcomposer.org
Voir aussi
- PEAR (alternative)
- (en) Site officiel
- Portail des logiciels libres
- Portail d’Internet
- Portail de la programmation informatique