Composer (logiciel)

gestionnaire de paquet pour PHP
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.3 ()[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

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

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

Avec PHP modifier

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

Fonctionnement modifier

Commandes modifier

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

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

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

Versions modifier

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

  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.3 », (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

Sur les autres projets Wikimedia :