C'est un gestionnaire de dépendance libre écrit en PHP. Il permet à ses utilisateurs de déclarer et d'installer les bibliothèques dont le projet principal a besoin.
composer self-update
# Ou
composer selfupdate
Cette commande va ajouter un paquet dans la configuration dans la section appropriée.
# Ajout d'un paquet pour l'ensemble des environnements. composer require -- <paquet> # Ajout d'un paquet pour l'environnement de développement. composer require --dev -- <paquet> # Ajout d'un paquet en spécifiant sa version. # La version est gérée par les contraintes. Voir plus bas comment gérer les contraintes (lien externe). composer require -- <paquet>:<contrainte> # Pour utiliser une branche de développement composer require -- <paquet>:dev-<branch>
Cette commande va mettre les bibliothèques à jour avec la dernière version disponible.
# Pour faire une mise à jour complète composer update # Pour faire une mise à jour partielle composer update -- <paquet>
Lors de la mise à jour d'une bibliothèque ayant des dépendances bloquantes, il faut lister également les dépendances. Par exemple :
composer update -- friendsofsymfony/elastica-bundle ruflin/elastica
Cette commande va créer le fichier composer.lock s'il n'existe pas. Si le fichier composer.lock existe, les bibliothèques seront mise à jour avec la version spécifiée dans le dit fichier.
# Pour faire une installation complète composer install # Pour faire une installation partielle composer install -- <paquet>
Cette commande affiche les informations détaillées des bibliothèques disponibles.
# Affiche toutes les bibliothèques composer show # Affiche les bibliothèques installées composer show -i # Affiche les extensions installées composer show -p
Pour héberger et distribuer soi-même ses bibliothèques avec Composer, il est nécessaire de mettre en place un serveur. Satis permet de faire cela facilement.
Rien de plus simple. Pour cela, il suffit d'utiliser Composer.
composer create-project composer/satis --stability=dev --keep-vcs
Cette commande va créer un répertoire satis qui contiendra le programme, la configuration du serveur ainsi que les bibliothèques.
Comme les bibliothèques seront distribuées par le serveur web, il est recommander d'exécuter la commande dans un répertoire accessible à l'utilisateur utilisé pour démarrer ce dernier.
La configuration se fait dans un fichier JSON à la racine du répertoire d'installation. Son nom n'a pas d'importance. Par défaut, satis.json sera utilisé.
Voici la configuration de base :
{ "name": "Bibliothèque AINW", "homepage": "http://composer.ainw.org", "repositories": [ { "type": "git", "url": "ssh://git.ainw.org/AinwBundle" } ], "require": { "ainw/ainw-bundle": "*" }, "require-dependencies": false }
Il est possible d'utiliser Satis pour héberger localement des bibliothèques distribuées. Pour cela, il faut modifier le fichier de configuration précédent :
{ "name": "Bibliothèque AINW", "homepage": "http://composer.ainw.org", "repositories": [ { "type": "git", "url": "ssh://git.ainw.org/AinwBundle" }, { "type": "composer", "url": "https://packagist.org" } ], "require": { "ainw/ainw-bundle": "*", "phpunit/phpunit": "*", }, "require-dependencies": true, "archive": { "directory": "archives" } }
Il suffit de lancer la commande suivante :
php bin/satis build <config.json> web/
Comme le dépôt est statique, il faut le générer régulièrement pour récupérer les dernières versions des bibliothèques hébergées.
Lors de l'utilisation de la commande composer
, il est possible de déclencher des actions extérieures en fonction de différents évènements. Il existe 4 types d'évènements 1):
Par exemple, on peut déclencher des actions après installation :
"scripts": { "post-install-cmd": [ "ls -lh" ] }
Dans ce cas, le script se déclenchera à la fin de chaque commande d'installation. Il est aussi possible de déclencher uniquement le script avec la commande suivante :
composer run-script post-install-cmd