Les deux révisions précédentesRévision précédente | |
composer [Le 16/10/2020, 14:34] – màj hash krodelabestiole | composer [Le 25/02/2021, 15:03] (Version actuelle) – [Mise à jour] ok sous bionic bcag2 |
---|
| {{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]]// |