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 un développeur 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 PHP. Par défaut le dépôt de ce gestionnaire est 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. Il a remplacé très rapidement le gestionnaire PEAR qui était l’ancien gestionnaire de composants de PHP.

Utiliser un gestionnaire de paquets pour les librairies qu’on importe dans son application web est essentiel. Cela permet à des développeurs de centraliser l’importation des librairies intégrées au sein d’un projet. Ça facilite 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 génère l’autoloader permettant d’intégrer les librairies facilement dans son projet. L’outil génère directement le code source dans le répertoire vendor pour charger les packages importés et ses classes PHP. Tout se fait à l’aide de la CLI (Command Line Interface) avec de nombreuses options pour faciliter son utilisation.

La plupart des librairies et frameworks connus proposent d’utiliser Composer pour l’installation. Le principal avantage et de pouvoir se mettre à jour facilement avec une simple commande dans le terminal. Les développeurs PHP se concentrent avant tout sur le développement grâce à une maintenance facilitée. Si Composer est installé sur le serveur de production, on peut alors déployer les librairies de son application directement avec le terminal via SSH. Plus besoin d’uploader tout les fichiers en FTP surtout si de nombreuses librairies sont utilisées facilitant ainsi les mises à jour.

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, MAMP 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
Configuration 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

En faisant un update cela va générer un fichier composer.lock à la base de l’application. Ce fichier peut être envoyé sur un serveur de production ou sur le dépôt du projet afin d’installer l’application avec la commande install. Chaque développeur peut donc utiliser ce fichier .lock pour charger les bonnes versions des packages puis tester en local de les updater afin de continuer à développer l’application.

composer install

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 et pour partager du code en équipe. Utiliser ce genre d’outil est indispensable pour faciliter la gestion des librairies d’une application PHP. Certain IDE comme PHPStorm intègre ce gestionnaire nativement pour gérer les dépendances directement dans son logiciel.