Gérer les dépendances PHP avec composer

Composer est un outil écrit en PHP qui permet de gérer les dépendances d’un projet. Ce qu’il faut comprendre par dépendance, c’est toute librairie ou bibliothèque PHP qu’un projet en dépend.

Pour mieux comprendre une dépendance, je l’illustre pour le cas de HTML et CSS que j’en suis sûr tous ceux qui me lisent maitrisent mieux.

Vous voulez par exemple utiliser bootstrap pour designer votre site web, vous auriez besoin de bootstrap dans votre projet, donc, bootstrap est une dépendance car votre projet en dépende. Donc, sans bootstrap vu que votre document HTML a été interfacé avec l’utilisation de ses classes, votre projet ne peut pas mieux fonctionner à son absence.

Alors avec bootstrap, le plus simple serait de télécharger la librairie, et de l’inclure avec la balise link; devinez maintenant un outil qui permettrait de télécharger et inclure bootstrap dans votre projet de manière automatique dont la seule chose que vous auriez à faire c’est de le déclarer dans un fichier de configuration ? Et puis ça ne se limite pas qu’à une seule dépendance, Vous pourriez avoir besoin de plusieurs dépendances qui eux même dépendent d’autres dépendances.

C’est exactement ce que composer résoud dans l’eco-système de PHP, Composer est exactement cet outil. Il permet de gérer toutes les dépendances d’un projet mais si composer restait juste avec les fonctionnalités que je viens d’illustrer dans cet exemple, il n’aurait que peu d’intérêt. Il va plus loin en gérant les versions de dépendances, les mises à jour de ses dépendances et bien plus encore. Découvrons dans la suite comment Composer gère les dépendances d’un projet PHP.

 

Composer, Installation et configuration

Deux manières existent pour installer et utiliser composer, soit vous l’installez directement dans votre projet en téléchargeant son archive (composer.phar) ou l’installez sous Windows globalement où vous auriez à l’utiliser dans tous vos projets.

Exécuter composer

Si vous l’aviez installé globalement sous Windows, en ouvrant l’invite de commande vous avez la commande composer

Si vous l’aviez bien évidement ajouté via l’archive composer.phar, depuis le dossier de votre projet, vous auriez à faire php composer.phar (Rassurez-vous que php a été ajouté dans la variable d’environnement de votre système)

Pour s’assurer que tout est bon, cette commande devrait vous afficher la version de composer


 

Utilisation de composer

A partir du fichier composer.json que vous aurez à créer ou générer, vous allez spécifier les différentes dépendances de votre projet de la manière suivante :


Où nom_dependance* est le nom de la dépendance qui est constitué du nom de l’auteur et le nom du package (plus d’information ici). Tous les packages sont hébergés dans http://packagist.org

Pour l’exemple, on va utiliser la librairie CustomAi que j’ai parlé sur la customisation de l’auto incrément. Vu qu’il est hébergé dans github et non dans packagist.org, on va devoir le spécifier dans le fichier composer.json


J’ai défini dev-master comme contrainte de version vu que le projet CustomAI n’a qu’une seule branche, la branche master.  Après avoir défini ces informations, vous n’avez qu’à exécuter la commande :


Cette commande dit à composer d’installer toutes les dépendances définies dans le fichier composer.json et composer téléchargera toutes les dépendances et leurs dépendances de manière récursive et un dossier vendor sera créé s’il n’existe pas où toutes les dépendances seront téléchargées.

En gros, cette commande réalise ces tâches

  1. Télécharges les dépendances et les dépendances de ces dépendances dans leurs liens respectifs
  2. Crée un dossier à partir vendor/ où il stocke les dépendances
  3. Génère un autoloader qui permettra l’inclusion automatique des fichiers
  4. Crée un fichier composer.lock où il enregistre l’état de votre projet actuel. cela lui permet de savoir quand faire la MAJ pour quelle dépendance.

Au final, mes dépendances sont chargées, pour utiliser ma librairie, je n’ai qu’à inclure l’autoloader dans le fichier où je veux l’utiliser.

 


Et après, je n’ai qu’à utiliser simplement ma bibliothèque

Initialiser un projet avec composer

Généralement, on fork un projet, mais il se pourrait que vous ayez envie de commencer un nouveau projet en scratch, composer a une commande qui permet d’initialiser un projet en interactivité et au final il générera le fichier composer.json. vous n’avez qu’à faire


Où vous aurez à remplir les informations concernant votre projet et définir une par une les dépendances de ses dépendances en ligne de commande. (plus d’infos)

Retrouvez toutes les commandes possible de composer ou carrément lisez sa docs pour plus d’informations

Enfin, Vous auriez compris que composer est largement utilisé au sein de la communauté PHP, le connaitre est à ce jour vraiment indispensable pour un développeur PHP professionnel. Tout le framework populaires PHP comme Symfony ou Laravel utilise de facto composer dans leur eco-système.

Ajouter un commentaire

Plus dans PHP
phpstorm
PHPStorm un environnement de développement intégré WEB pour le pro

Jetbrains PHPStorm est un environnement de développement intégré spécialisé pour le développement Web. Initialement conçu pour le développement PHP avec...

wordpress localement
Installer professionnellement WordPress en local

Wordpress est sans nul doute le CMS le plus utilisé actuellement. il gagne ce marché surtout pour sa facilité, sa...

Fermer