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:// | ||
