Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
composer [Le 12/07/2017, 14:09] 91.183.64.76 [Installation] |
composer [Le 23/12/2018, 18:23] 87.88.68.52 [Installation] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>php}} | + | {{tag>php serveur programmation}} |
---- | ---- | ||
Ligne 5: | Ligne 5: | ||
====== Composer ====== | ====== Composer ====== | ||
- | Le logiciel **Composer** est un gestionnaire de dépendances sous licence libre ([[http://fr.wikipedia.org/wiki/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. | + | 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 ===== | ===== Pré-requis ===== | ||
- | * Avoir installé PHP en ligne de commande et curl | + | * 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 ===== | ===== Installation ===== | ||
- | Pour installer **composer** , ouvrez un terminal et tapez les lignes suivantes : | + | Pour installer **Composer** , ouvrez un terminal et copiez-collez les lignes suivantes : |
- | <code> | + | <code>php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" |
- | curl -sS https://getcomposer.org/installer | php | + | php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" |
- | sudo mv composer.phar /usr/local/bin/composer.phar | + | sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer |
- | </code> | + | php -r "unlink('composer-setup.php');"</code> |
- | On va ensuite créer un alias permanent : | + | Vous pouvez désormais utiliser Composer : |
- | <code> | + | <code>composer</code> |
- | gedit ~/.bashrc | + | |
- | </code> | + | ===== Utilisation ===== |
- | Ajouter la ligne suivante à la fin du fichier : | + | |
- | <code> | + | ==== Installer un projet existant ==== |
- | alias composer='/usr/local/bin/composer.phar' | + | |
- | </code> | + | Pour installer un projet existant, la commande est la suivante : |
- | Executer la commande suivante : | + | <code>composer create-project [le nom du projet sur packagist] [le répertoire dans lequel l'installer]</code> |
- | <code> | + | Remplacez évidemment ''[le nom du projet sur packagist]'' et ''[le répertoire dans lequel l'installer]'' : |
- | . ~/.bashrc | + | * le nom du projet sur [[https://packagist.org/|Packagist]] est de la forme ''auteur/projet'' |
- | </code> | + | * 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/''. | ||
- | Vous pouvez désormais utiliser composer depuis n'importe quel point de l'arborescence : | ||
- | <code> | ||
- | $composer | ||
- | </code> | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
* **(en)** [[https://getcomposer.org/]] | * **(en)** [[https://getcomposer.org/]] | ||
- | * **(fr)** [[http://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/installer-un-bundle-grace-a-composer]] | + | * [[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. | |
- | * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion « J'ai un soucis avec le logiciel Bidule »]] sur le forum Ubuntu-fr | + | |
---- | ---- | ||
- | //Contributeurs principaux : [[utilisateurs:d10g3n|d10g3n]] | + | //Contributeurs : [[:utilisateurs:d10g3n]], [[:utilisateurs:krodelabestiole]]// |