Composer le package manager de PHP

Composer est un gestionnaire de dépendances permettant de gérer plus facilement les librairies externes d’un projet pour les développeurs PHP. Un peu comme NPM sous Node.js, Composer facilite la maintenance en installant et en mettant à jour les bibliothèques externes d’une application web. Par défaut le dépôt de ce gestionnaire est le site Packagist mais il est possible de configurer un autre dépôt si besoin. Composer s’utilise exclusivement en ligne de commande ce qui nécessite d’avoir un peu de facilité avec le terminal de son ordinateur.

Utiliser un gestionnaire de paquets pour les librairies qu’on importe dans son application web est essentiel. Il permet à des développeurs de centraliser l’import des librairies utilisées au sein d’un projet. Ça facilite grandement le travail en équipe et la maintenance de l’application sur le long terme. En plus de télécharger les paquets demandés, Composer intègre aussi un système d’autoload permettant d’intégrer les librairies facilement dans son code. Il propose entre autres une CLI Command Line Interface avec de nombreuses options pour faciliter son utilisation.

Composer est un gestionnaire de dépendances pour le langage PHP
Composer est un gestionnaire de dépendances pour le langage PHP

Téléchargement de Composer

Avant d’ajouter ce gestionnaire en invite de commande, il faut au préalable le télécharger. Il est possible de le récupérer avec un script PHP depuis le terminal ou de télécharger la dernière version stable dans la page de téléchargement de Composer. Il nécessite une version de PHP récente pour fonctionner correctement. Composer fonctionne sur tous les systèmes Windows, macOS et Linux tant que PHP est installé. Pour vérifier que le langage PHP est bien installé sur son ordinateur il suffit de faire la commande suivante dans son terminal :

php -v

Si PHP n’est pas reconnu comme une commande interne il ne reste plus qu’à l’installer via un package comme XAMPP ou WampServer puis de configurer son système pour l’utiliser en ligne de commande. Il est aussi possible de mettre à jour sa version de PHP en installant ces packages pour pouvoir utiliser la dernière version de Composer.

Installation de Composer sur macOS

Sur macOS après téléchargement il faut déplacer le fichier composer.phar dans le répertoire bin soit avec le finder ou soit via le terminal avec la commande suivante :

sudo mv composer.phar /usr/local/bin/

Ensuite, ouvrir le fichier .bash_profile à la racine de son dossier utilisateur et y ajouter la ligne suivante :

alias composer="php /usr/local/bin/composer.phar"

Installation de Composer sur Windows

Sur Windows il existe un programme d’installation pour faciliter la mise en place de composer disponible dans la rubrique d’aide pour Windows. Sinon il est possible de télécharger le fichier composer.phar dans un dossier de son disque dur puis de créer le fichier bat avec la commande :

C:\bin> echo @php "%~dp0composer.phar" %*>composer.bat

Enfin ouvrir la fenêtre des variables d’environnement de son système dans les paramètres avancés et éditer la variable Path en ajoutant le dossier où se trouve le fichier de composer.

Les variables d'environnement pour Windows
Gestion des variables d’environnement

Utilisation de la commande composer

Après installation et configuration, il est possible depuis le terminal d’utiliser composer.phar avec la commande composer. Pour installer les dépendances du fichier composer.json il suffit de se déplacer dans son projet avec le terminal et de faire la commande suivante :

composer update

Pour modifier juste l’autoloader d’un projet après avoir ajouté un nouveau répertoire de classe par exemple, il suffit de faire la commande suivante afin de mettre à jour l’autoload :

composer dump-autoload

Pour plus de renseignements sur l’utilisation de Composer se référer à la documentation et il existe beaucoup de ressources sur Internet. C’est un outil pratique pour le développement et la maintenance de ses librairies PHP. Utiliser ce genre d’outil en travail en équipe est indispensable pour faciliter la gestion des librairies du projet. Certain IDE comme PHPStorm intègre ce gestionnaire nativement pour gérer les dépendances directement dans son logiciel.