Le monde du développement logiciel en toujours en évolution. Les applications sont de plus en plus complexes et s’intègrent de plus en plus les unes aux autres. Toutefois, la plupart des applications couvrent souvent les mêmes besoins fonctionnent : sécurité et gestion des utilisateurs, logs, formulaire, validation, traduction, connexion aux bases de données, connexion à Facebook, Google ou Twitter et ainsi de suite. Il ne faut pas constamment réinventer la roue. Très souvent, les développeurs d’applications intègrent soit du code open source trouvé sur Github et autres sites de partage de script, ou publient leur propre librairie.

Composer est un système de gestion de dépendances de PHP. Il joue un rôle similaire à Gradle pour les développements d’applications mobiles Android, Maven pour le développement en java. Il est utilisé dans les tous les frameworks modernes comme Symfony ou Cakephp. De nos jours, il est l’outil le plus populaire pour la gestion de dépendance qui a déjà servi une grande majorité de projets internet. Découvrez dans les lignes qui suivent ses fonctionnalités.

 

Comme indiqué plus haut, Composer permet de résoudre les problèmes récurrents que rencontrent les développeurs d’applications en PHP :

  • La résolution des dépendances,
  • L’autoloading des libraires PHP,
  • Et l’assurance de l’intégration harmonieuse des diverses versions des packages

 

Les applications modernes sont construites les unes sur les autres. Par exemple, les composants de Symfony sont utilisés dans une grande variété de projets. Disons que je souhaite utiliser un composant de formules. J’ai repéré par Symfony/form. Quand on regarde la chaine de dépendance, il inclut symfony/event-dispatcher, qui lui a son tour dépend de Symfony/dependency-injection, ainsi de suite…. Composer permet de résoudre toutes ces dépendances et de télécharger tous les composants dont a besoin un projet pour fonctionner de manière automatique.

Comment installer Composer

Veuillez-vous référer a la page https://getcomposer.org/download/ pour savoir ou récupérer le binaire et comment installer Composer suivant votre système d’exploitation.

Ce tutoriel indique comment utiliser Composer avec Windows.

Une fois Composer installé sur votre ordinateur Windows, la commande est automatiquement ajoutée au Path et vous n’avez plus qu’à l’utiliser.

Quelques commandes Composer utiles

–version : vous indique la version courante installée sur votre station de développement.

Composer self-update : permet de mettre à jour votre composer à la version que vous lui indiquerez ou autrement à la dernière mouture.

Composer init : vous permet de générer automatiquement le fichier de configuration composer.json qui se trouvera à la racine de votre projet.

Packagist Repository de Composer

Packagist.org est le dépot par défaut de Composer et le seul dépot disponible à ce jour. Vous devriez y rechercher votre composent avant de sélectionner celui qui convient le mieux à votre projet. Si vous cherchez par exemple une librairie PHP pour intégrer vos tweets dans votre application, vous trouverez le composant « abraham/twitteroauth ». Ajoutez

composer require ‘abraham/twitteroauth’ : ‘dev-master’ qui va être la dernière version de développement ou

composer require ‘abraham/twitteroauth’ : ‘0.7.4’ qui est une version stable par exemple.

A chaque fois que vous mettez à jour votre fichier composer.json, vous devez lancer la commande composer update puis la commande ‘composer install’ pour mettre à jour les dépendances. Alors un dossier vendor va être créé s’il n’existe pas déjà.

Pour intégrer les composants dans votre application, il suffit d’ajouter le code

require_once ‘vendor/autoload.php’ dans votre classe.

 

Notez qu’il vous est aussi possible d’ajouter votre propre librairie dans votre application en cours de développement.

 

Conclusion

Composer est devenu un outil indispensable pour accélérer le développement d’applications en PHP. Nous l’avons adopté récemment pour le développement de module Prestashop. Son intégration est très simple pour une excellente efficacité.