Utiliser Composer

Utiliser Composer

25 février 2022

Composer est un gestionnaire de dépendances pour PHP. Cet outil permet de gérer et d'intégrer des bibliothèques externes dans les projets PHP. Il se veut simple et fiable en même temps.

L'utilisation de Composer se fait principalement en ligne de commande. L'utilisation est très facile et à la portée de tous. Vous pouvez retrouver plus d'informations directement sur le site officiel : https://getcomposer.org/

Installation

Mac ou Linux

L'installation sous un environnement Unix se fera en ligne de commande. Pour cela, ouvrez votre terminal et entrer la ligne suivante :

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

Si vous possédez Hombrew sur votre machine, vous pouvez utiliser cette commande :

brew install composer

Tester l'installation en tapant la commande composer dans votre terminal. Vous devriez obtenir un résultat similaire :

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/

Composer version 2.2.5 2022-01-21 17:25:52

La date et l'heure peuvent varier

Windows

Sous Windows, l'installation utilisera un exécutable téléchargeable depuis ce lien : https://getcomposer.org/doc/00-intro.md#installation-windows

Lancer l'assistant d'installation et ne cochez pas le Developer mode. Dans la fenêtre suivante, vous devez indiquer où se situe PHP sur votre machine, par défaut il peut être trouvé automatiquement, sinon faites-le. Pour ce qui est des paramètres du proxy, ignorez cette étape et passez à la suivante. Enfin, installez.

Une fois le processus terminé, ouvrez une invite de commande et testez en insérant la commande composer.

Utilisation

Composer vous permet d'ajouter des dépendances externes à votre projet. Vous pouvez les trouver sur le site Packagist.

Pour l'exemple, nous utiliserons ce paquet : https://github.com/sebastianbergmann/version

Son utilisation est très facile, pour cela, ouvrez un terminal et rendez-vous dans le dossier de votre projet. Une fois dans celui-ci, installez la bibliothèque :

composer require sebastian/version

Vous devriez voir apparaitre les étapes de l'installation :

Using version ^3.0 for sebastian/version
./composer.json has been created
Running composer update sebastian/version
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking sebastian/version (3.0.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing sebastian/version (3.0.2): Extracting archive
Generating autoload files
1 package you are using is looking for funding.
Use the `composer fund` command to find out more!

Vous verrez apparaitre un dossier nommé vendor dans votre projet contenant la bibliothèque choisie, ainsi qu'un fichier composer.json et composer.lock à la racine de votre projet. Tout cela est normal.

A chaque fois que vous installerez une dépendance, elle viendra se loger dans le dossier vendor et le fichier composer.json se remplira d'une nouvelle information.

composer.json

Ce fichier est très important et ne doit pas être supprimé. Il s'agit du registre de Composer. C'est-à-dire que c'est grâce à ce fichier que Composer pourra installer vos dépendances et les mettre à jour au besoin. Pas de mise à jour de manière automatique.

Si jamais vous n'avez plus le dossier vendor dans votre projet. Vous pouvez tout réinstaller grâce à ce fichier et Composer :

composer install

Tout simplement !

Voyons un peu son contenu.

{
    "require": {
        "sebastian/version": "^3.0"
    }
}

Il ne contient rien d'autre que le nom de la dépendance, ainsi que de la version utilisée. Le caractère ^ permet de signifier à Composer que les mises à jour futures concerneront toute la version 3.0, mais s'arrêtera dès que la rétrocompatibilité ne sera plus possible. Autrement dit, que dès que la dépendance arrivera à la version 4.0, Composer ne mettra pas à jour. Son maximum sera : 3.9.9.

Mettre à jour

Comme expliquer au-dessus, Composer peut mettre à jour vos paquets. Cela se fait très simplement depuis votre terminal de commandes :

composer update

Toutes vos dépendances se mettront à jour si nécessaire. Par contre, vous avez la possibilité de mettre à jour une seule librairie si besoin :

composer update sebastian/version

Cela aura aussi pour effet de mettre à jour le fichier composer.json.

Supprimer

Si à l'inverse, vous souhaitez vous débarrasser d'une bibliothèque, alors la commande suivante sera votre alliée :

composer remove sebastian/version

Utilisation de la dépendance

Bon, c'est bien gentil tout ça, mais comment utiliser la dépendance uns fois installée dans notre projet. Pour cela, ouvrez une page PHP et appelons l'autoloader de Composer :

<?php
require __DIR__ .'/vendor/autoload.php';

Il ne vous restera plus qu'à lire la documentation pour utiliser la bibliothèque.

<?php
require __DIR__ .'/vendor/autoload.php';

use SebastianBergmann\Version;

$version = new Version('1.0.0', __DIR__);
var_dump($version->getVersion());

Astuce

Astuce qui n'en est pas une. Faites bien attention à être situé dans le dossier de votre projet et la racine de celui-ci avant d'utiliser Composer.