Outils pour utilisateurs

Outils du site


informatique:php:composer

Composer

C'est un gestionnaire de dépendance pour les projets PHP.

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

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

Liens utiles

informatique/php/composer.txt · Dernière modification : 2022/09/28 16:17 de alexis