Composer (logiciel)

gestionnaire de paquet pour PHP

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 et a donné lieu à une première version sortie le . Développé au début par Nils Adermann et Jordi Boggiano[3] (qui continuent encore aujourd'hui à le maintenir), le projet est maintenant disponible sur la plateforme GitHub[4]. Il est ainsi développé par toute une communauté[5].

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.9.5 ()
Dépôt https://github.com/composer/composer
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en PHP
Système d'exploitation Multiplateforme (d)Voir et modifier les données sur Wikidata
Type Application-level package manager (en)Voir et modifier les données sur Wikidata
Licence Licence MIT
Documentation https://getcomposer.org/doc/
Site web https://getcomposer.org

Le logiciel Composer est à l’initiative d'un portage en PHP du logiciel Libzypp satsolver[6] d'Open Suse.

Le logiciel Composer est fortement inspiré du logiciel npm pour Node.js et de bundler[7] pour Ruby[8].

Installation

modifier

Le dépôt principal de Composer est le site web Packagist[9], 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

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

Fonctionnement

modifier

Commandes

modifier

Composer dispose de plusieurs paramètres dont[10] :

  • 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[11].
  • 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[12] :

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. ↑ getcomposer.org Site web de composer
  4. ↑ github.com/composer/composer Code source de composer sur GitHub
  5. ↑ github.com/composer/composer/graphs/contributors Liste des contributeurs sur GitHub
  6. ↑ « openSUSE:Libzypp satsolver - openSUSE », sur en.opensuse.org
  7. ↑ (en) « Bundler : The best way to manage a Ruby application's gems », sur bundler.io.
  8. ↑ getcomposer.org/doc/00-intro.md Site web de composer, page d'introduction
  9. ↑ Packagist Packagist : Dépôt principal de Composer
  10. ↑ (en) « Command-line interface / Commands - Composer », sur getcomposer.org.
  11. ↑ Olivier Van Hoof, « Moderniser une application PHP Zend Framework 1 avec le conteneur de dépendances de Symfony 2 », sur Developpez.com.
  12. ↑ (en) « Versions and constraints - Composer », sur getcomposer.org.

Voir aussi

modifier

Sur les autres projets Wikimedia :

Articles connexes

modifier

Liens externes

modifier