Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
composer [Le 16/10/2020, 14:34] – màj hash krodelabestiolecomposer [Le 25/02/2021, 15:03] (Version actuelle) – [Mise à jour] ok sous bionic bcag2
Ligne 1: Ligne 1:
 +{{tag>php serveur programmation}}
  
 +====== Composer ======
 +
 +Le logiciel **Composer** est un gestionnaire de dépendances sous licence libre ([[wpfr>Licence_publique_g%C3%A9n%C3%A9rale_GNU|GPL v3]]), écrit en PHP. Il permet à ses utilisateurs de déclarer et d'installer les bibliothèques dont le projet principal a besoin. Cela évite aux développeurs d'avoir à distribuer leurs projets avec toutes les bibliothèques qu'ils utilisent. On peut donc le voir comme un équivalent de [[:APT]], pour les projets écrits en [[:PHP]].
 +
 +Le dépôt principal de Composer est le site [[https://packagist.org/|Packagist]]. Il est très simple de publier ses projets sur cette plateforme, et elle rassemble une communauté particulièrement importante.
 +
 +===== Pré-requis =====
 +
 +  * Avoir [[:php#installation|installé PHP]] en ligne de commande.
 +<note tip>Sur Ubuntu le paquet [[apt>php-cli]] est en principe installé par défaut avec n'importe quelle [[:php#installation|installation de PHP]], ou avec la pile [[:LAMP]].
 +
 +Donc si vous utilisez déjà PHP vous n'avez très probablement rien de plus à installer.</note>
 +
 +===== Installation =====
 +
 +Pour installer **Composer** en suivant les [[https://getcomposer.org/download/|indications de la documentation officielle]], ouvrez un terminal et copiez-collez les lignes suivantes :
 +
 +<code>php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
 +php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
 +php composer-setup.php
 +php -r "unlink('composer-setup.php');"</code>
 +Adaptez éventuellement le hash ''795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc'' à celui de la dernière version (voir la [[https://getcomposer.org/download/|documentation officielle]]).
 +
 +Vous pouvez désormais utiliser Composer :
 +<code>composer</code>
 +<note tip>Si la commande ''composer'' ne fonctionne pas, essayez :
 +<code bash>php composer.phar</code>
 +On peut aussi créer un [[:alias]] :
 +<code bash>alias composer='php ~/composer.phar'</code> </note>
 +
 +===== Mise à jour =====
 +En octobre 2020 est sortie [[https://blog.packagist.com/composer-2-0-is-now-available/|la version 2.0 de composer]]\\
 +Pour mettre à jour composer v1.x vers v2, vous pouvez exécuter :\\
 +<code bash>composer self-update --2</code>
 +
 +===== Utilisation =====
 +
 +==== Installer un projet existant ====
 +
 +Pour installer un projet existant, la commande est la suivante :
 +<code>composer create-project [le nom du projet sur packagist] [le répertoire dans lequel l'installer]</code>
 +Remplacez évidemment ''[le nom du projet sur packagist]'' et ''[le répertoire dans lequel l'installer]'' :
 +  * le nom du projet sur [[https://packagist.org/|Packagist]] est de la forme ''auteur/projet''
 +  * le répertoire dans lequel l'installer peut être un nouveau répertoire, Composer le créera automatiquement.
 +
 +==== Déclarer des dépendances à un projet personnel ====
 +
 +Composer fournit une méthode didactique pour la création d'un projet.
 +Placez vous à la racine de votre projet puis lancez la commande :
 +<code>composer init</code>
 +Une série de questions vous seront posées au sujet de votre projet.
 +
 +Ceci aura pour effet de créer un fichier ''composer.json'' contenant toutes les informations de votre projet (ce qui peut être utile dans le cadre d'une éventuelle publication sur [[https://packagist.org/|Packagist]] ;-)), dont surtout ses dépendances.
 +
 +Pour chaque dépendance vous pouvez choisir de spécifier finement les versions à utiliser. 
 +
 +==== Installer des dépendances ====
 +
 +Avec les fichiers d'un projet entre les mains, dont le fichier ''composer.json'', la commande pour déployer les dépendances est la suivante :
 +<code>composer install</code>
 +Cela aura pour effet de créer un répertoire ''vendor/'' dans lequel seront déployées toutes les bibliothèques PHP.
 +
 +Si il s'agit de votre projet, il n'est donc pas nécessaire de le distribuer avec ce répertoire ''vendor/''.
 +
 +===== Problèmes courants =====
 +
 +==== Impossible de mettre à jour ====
 +
 +La mise à jour se fait normalement par 
 +<code bash>composer self-update</code>
 +Si vous avez installé composer au moyen d'[[:APT]], il faut le désinstaller :
 +<code bash>
 +sudo apt autoremove composer
 +</code>
 +puis le ré-installer manuellement comme [[:composer#installation|expliqué plus haut]].
 +
 +===== Voir aussi =====
 +
 +  * **(en)** [[https://getcomposer.org/]]
 +  * [[http://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/installer-un-bundle-grace-a-composer]]
 +  * [[https://www.grafikart.fr/tutoriels/php/composer-480|Un très bon tutoriel]], accompagné d'[[https://www.youtube.com/watch?v=EBZ1owgiSSQ|une vidéo]] sur le site de Grafikart.
 +
 +----
 +//Contributeurs : [[:utilisateurs:d10g3n]], [[:utilisateurs:krodelabestiole]]//