Avec l’arrivé de PHP5, les notions de bibliothèques, composants, package, n’ont jamais été si présent dans le développement web. En effet, grâce à l’ajout des objets et des namespaces, le langage PHP est devenu comme tous les autres langages de programmation, un langage souple, modulable et réutilisable. La très forte communauté a donc créé des milliers de composants, bibliothèques, mais très vite, le surplus est devenu fouillis et il fallait mettre de l’ordre dans tout ça.
Qu’est-ce que Composer ?
Composer est un outil mis en place pour la communauté des développeurs de PHP. A l’image de « npm » pour nodejs ou « bundler » pour ruby, il sert de gestionnaire de dépendance entre applications et librairies.
De façon plus précise, Composer permet de gérer pour chaque projet, la liste des modules et bibliothèques nécessaires à son fonctionnement ainsi que leurs versions. Il est utilisable via la console en ligne de commande. De plus, il permet de mettre en place un système d’autoload pour les bibliothèques compatibles.
Exemple d’utilisation
Pour utiliser Composer, tout se passe dans le fichier composer.json à la racine de votre projet. Ce fichier va définir toutes les informations concernant votre projet ainsi que toutes ses dépendances.
Nous allons prendre comme exemple le fichier composer.json du module zendsqueleton (disponible ici) qui est un cas simple pour comprendre :
{ "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.2.*" } }
Premièrement, nous voyons que le fichier est un simple tableau au format json. Les premiers éléments sont un ensemble d’attributs définissant le projet. Ce qui nous interesse est la clé « require », c’est ici que sont définit les dépendances. Il y en a deux, chacun avec un nom et une version. Il vous faudra donc PHP 5.3.3 minimum et zendframework dans sa version 2.2 la plus récente.
Le site Packagist.org
Le site : https://packagist.org/
Ce site permet d’enregistrer vos propres packages mais aussi de chercher tous les packages disponible, avec une page complète qui liste les différentes versions du package, et une description.
Aller plus loin avec Composer
- Le site officiel : https://getcomposer.org/