Table des matières
Composer
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.
Commandes utiles
- Mise à jour de Composer
composer self-update
# Ou
composer selfupdate
- Ajout d'un paquet dans la configuration
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>
- Mise à jour des bibliothèques
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
- Installation des bibliothèques
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>
- Affichage des bibliothèques
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
Installer un dépôt Composer local
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.
Installer Satis
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.
Configurer Satis
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 }
- name contient le nom du serveur qui sera affiché.
- homepage est l'URL à utiliser dans la configuration de Composer.
- repositories contient la liste des dépôts de bibliothèques.
- require contient la liste des bibliothèques à distribuer, ainsi que leur version. L'utilisation de * permet de récupérer l'ensemble des versions disponibles.
- require-dependencies indique si les dépendances doivent être hébergées.
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" } }
- archive indique que les bibliothèques sont archivées. Il est possible de choisir le type d'archive, l'URL de distribution des archives ainsi que le répertoire de stockage (voir la documentation)
Générer le dépôt
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.
Pour aller plus loin
- Installer un dépôt local avec Satis. Contient le code pour mettre à jour la configuration automatiquement si une bibliothèque n'est pas encore présente.
Déclenchement d'actions externes
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):
- les évènements sur la commande elle même.
- les évènements sur l'installeur.
- les évènements sur les packages.
- les évènements sur les plugins.
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