Programmation PHP/Composer

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Composer[modifier | modifier le wikicode]

Composer est un logiciel de gestion des bibliothèques PHP open source. Celles-ci sont aussi accessibles sur https://packagist.org/.

Logo Il existe une syntaxe pour le nommage des bibliothèques sous peine de warnings lors des manipulations avec composer. Elles doivent être de la forme vendor name/package name, uniquement avec des caractères alphanumériques plus "-", "." ou "_".


Installation[modifier | modifier le wikicode]

Pour l'installer il y a trois solutions :

  • Avec les commandes PHP décrites sur https://getcomposer.org/download/.
  • En téléchargeant le package par navigateur à la même adresse.
  • En le téléchargeant avec la commande cURL[1], comme le montre la vidéo suivante :

A la fin il faut juste disposer du fichier composer.phar.

Pour le lancer, on peut utiliser la commande composer s'il est installé avec PHP, ou php composer.phar s'il est juste téléchargé.

Pour l'installer à partir du téléchargement :

 curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Enfin, pour tester l'installation, lancer :

 composer -v

Utilisation[modifier | modifier le wikicode]

Le programme Composer lit et modifie la liste des bibliothèques du projet dans le fichier composer.json.

require[modifier | modifier le wikicode]

Pour installer un paquet, par exemple MediaWiki (le numéro de version est facultatif) :

 php composer.phar require mediawiki/semantic-media-wiki "1.9.*,>=1.9.0.1"

Si l'installation réussit, il ajoute le nom et la version du paquet dans composer.json, ceux de ses dépendances dans composer.lock, et télécharge leurs fichiers dans un dossier "vendors". Il informe ensuite des problèmes de dépendances, par exemple si la version de PHP locale est inférieure à celle recommandée pour le paquet. En cas d'erreur il retire tout ce qu'il a fait.

Pour installer une bibliothèque uniquement en environnement de développement :

 composer require --dev phpunit/phpunit ^8

install[modifier | modifier le wikicode]

Généralement quand on clone un projet git existant contenant un composer.json, il suffit ensuite pour le faire fonctionner, d'installer ses dépendances ainsi :

 composer install

Logo Si plusieurs versions de PHP sont installées, il faut préciser laquelle exécute composer ainsi :

/usr/bin/php7.2 /usr/local/bin/composer install


update[modifier | modifier le wikicode]

Logo Ne jamais lancer de composer update sur un projet existant, sous peine de devoir tout retester. En effet, mieux vaut ne mettre à jour qu'une seule bibliothèque en précisant son nom :

 php composer.phar update mediawiki/semantic-media-wiki --with-dependencies


show[modifier | modifier le wikicode]

Affiche toutes les bibliothèques installées sur une ligne chacune, ce qui est plus lisible que composer.lock.

Syntaxe du composer.json[modifier | modifier le wikicode]

La syntaxe JSON de ce fichier contient quelques extensions[2] :

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.

Stability Flag[modifier | modifier le wikicode]

Après la version à trois nombres, on peut suffixer un arobase puis un Stability Flag[3]. Exemples :

  • @dev
  • @stable

Références[modifier | modifier le wikicode]