informatique:langages:php:composer
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
informatique:langages:php:composer [2025/01/02 09:28] – supprimée - modification externe (Date inconnue) 127.0.0.1 | informatique:langages:php:composer [2025/01/02 09:28] (Version actuelle) – ↷ Page déplacée de informatique:php:composer à informatique:langages:php:composer alexis | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Composer ====== | ||
+ | {{ : | ||
+ | C'est un gestionnaire de dépendance libre écrit en PHP. Il permet à ses utilisateurs de déclarer et d' | ||
+ | |||
+ | ===== Commandes utiles ===== | ||
+ | * Mise à jour de Composer | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | 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. | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # Ajout d'un paquet pour l' | ||
+ | composer require -- < | ||
+ | |||
+ | # Ajout d'un paquet pour l' | ||
+ | composer require --dev -- < | ||
+ | |||
+ | # 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 -- < | ||
+ | # Pour utiliser une branche de développement | ||
+ | composer require -- < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Mise à jour des bibliothèques | ||
+ | Cette commande va mettre les bibliothèques à jour avec la dernière version disponible. | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # Pour faire une mise à jour complète | ||
+ | composer update | ||
+ | |||
+ | # Pour faire une mise à jour partielle | ||
+ | composer update -- < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP tip> | ||
+ | Lors de la mise à jour d'une bibliothèque ayant des dépendances bloquantes, il faut lister également les dépendances. Par exemple : | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | composer update -- friendsofsymfony/ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Installation des bibliothèques | ||
+ | Cette commande va créer le fichier composer.lock s'il n' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # Pour faire une installation complète | ||
+ | composer install | ||
+ | |||
+ | # Pour faire une installation partielle | ||
+ | composer install -- < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Affichage des bibliothèques | ||
+ | Cette commande affiche les informations détaillées des bibliothèques disponibles. | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # 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. [[https:// | ||
+ | |||
+ | ==== Installer Satis ==== | ||
+ | Rien de plus simple. Pour cela, il suffit d' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | composer create-project composer/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | ==== Configurer Satis ==== | ||
+ | La configuration se fait dans un fichier JSON à la racine du répertoire d' | ||
+ | |||
+ | Voici la configuration de base : | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * //name// contient le nom du serveur qui sera affiché. | ||
+ | * // | ||
+ | * // | ||
+ | * //require// contient la liste des bibliothèques à distribuer, ainsi que leur version. L' | ||
+ | * // | ||
+ | |||
+ | Il est possible d' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { " | ||
+ | { " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * //archive// indique que les bibliothèques sont archivées. Il est possible de choisir le type d' | ||
+ | |||
+ | ==== Générer le dépôt ==== | ||
+ | Il suffit de lancer la commande suivante : | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | php bin/satis build < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 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 ==== | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Déclenchement d' | ||
+ | Lors de l' | ||
+ | * les évènements sur la commande elle même. | ||
+ | * les évènements sur l' | ||
+ | * les évènements sur les packages. | ||
+ | * les évènements sur les plugins. | ||
+ | |||
+ | Par exemple, on peut déclencher des actions après installation : | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code javascript> | ||
+ | " | ||
+ | " | ||
+ | "ls -lh" | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Dans ce cas, le script se déclenchera à la fin de chaque commande d' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | composer run-script post-install-cmd | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Liens utiles ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||