Composer

Le logiciel Composer est un gestionnaire de dépendances sous licence libre (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 Packagist. Il est très simple de publier ses projets sur cette plateforme, et elle rassemble une communauté particulièrement importante.

Sur Ubuntu le paquet php-cli est en principe installé par défaut avec n'importe quelle 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.

Pour installer Composer en suivant les indications de la documentation officielle, ouvrez un terminal et copiez-collez les lignes suivantes :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Adaptez éventuellement le hash 55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae à celui de la dernière version (voir la documentation officielle).

Réaliser ces commandes à partir de votre répertoire /home/$USER/ sinon le fichier composer.phar sera dans le répertoire courant

Vous pouvez désormais utiliser Composer :

composer
Si la commande composer ne fonctionne pas, essayez :
php composer.phar

On peut aussi créer un alias :

alias composer='php ~/composer.phar'

Pour mettre à jour composer v2 entre 2 versions mineures (par exemple v2.3.x vers v2.5.x) :

composer self-update

En octobre 2020 est sortie la version 2.0 de composer
Pour mettre à jour composer v1.x vers v2, vous pouvez exécuter :

composer self-update --2
Cette mise à jour ne fonctionne que si vous aviez installé composer suivant les instructions d'installation ci-dessus, sinon, commencer par désinstaller la version du dépôt officiel
sudo apt remove composer

Installer un projet existant

Pour installer un projet existant, la commande est la suivante :

composer create-project [le nom du projet sur packagist] [le répertoire dans lequel l'installer]

Remplacez évidemment [le nom du projet sur packagist] et [le répertoire dans lequel l'installer] :

  • le nom du projet sur 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 :

composer init

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

composer install

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

Impossible de mettre à jour

La mise à jour se fait normalement par

composer self-update

Si vous avez installé composer au moyen d'APT, il faut le désinstaller :

sudo apt autoremove composer

puis le ré-installer manuellement comme expliqué plus haut.

  • composer.txt
  • Dernière modification: Le 09/03/2023, 11:29
  • par bcag2