Composer (logiciel)

Un article de Wikipédia, l'encyclopédie libre.
Composer
Description de l'image Logo-composer-transparent.png.

Informations
Développé par Nils Adermann,
Jordi Boggiano,
Communauté[1]
Première version [2]Voir et modifier les données sur Wikidata
Dernière version 2.7.1 ()[3]Voir et modifier les données sur Wikidata
Dépôt github.com/composer/composerVoir et modifier les données sur Wikidata
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en PHPVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Type Application-level package manager (d)Voir et modifier les données sur Wikidata
Licence Licence MITVoir et modifier les données sur Wikidata
Site web getcomposer.orgVoir et modifier les données sur Wikidata

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[modifier | modifier le code]

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.

Avec cURL[modifier | modifier le code]

$ curl -sS https://getcomposer.org/installer | php

Avec PHP[modifier | modifier le code]

$ php -r "readfile('https://getcomposer.org/installer');" | php

Fonctionnement[modifier | modifier le code]

Commandes[modifier | modifier le code]

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[modifier | modifier le code]

Exemple du composer.json généré par la commande :

composer require monolog/monolog
{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

Versions[modifier | modifier le code]

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[modifier | modifier le code]

  1. « Dependency Manager for PHP. Contribute to composer/composer development by creating an account on GitHub », sur GitHub,
  2. « https://github.com/composer/composer/blob/master/CHANGELOG.md »
  3. « Release 2.7.1 », (consulté le )
  4. getcomposer.org Site web de composer
  5. github.com/composer/composer Code source de composer sur GitHub
  6. github.com/composer/composer/graphs/contributors Liste des contributeurs sur GitHub
  7. « openSUSE:Libzypp satsolver - openSUSE », sur en.opensuse.org
  8. « Bundler: The best way to manage a Ruby application's gems », sur bundler.io
  9. getcomposer.org/doc/00-intro.md Site web de composer, page d'introduction
  10. Packagist Packagist : Dépôt principal de Composer
  11. « Command-line interface / Commands - Composer », sur getcomposer.org
  12. Olivier Van Hoof, « Moderniser une application PHP Zend Framework 1 avec le conteneur de dépendances de Symfony 2 »
  13. « Versions and constraints - Composer », sur getcomposer.org

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :