Slapandthink

Web / Dev / Code

Composer, un gestionnaire de paquets simple et efficace

- Développement

Nous avons tous nos frameworks favoris, ces derniers utilisant pas mal de librairies comme les classes d’abstractions pour la manipulation de base de données (ORM comme Doctrine), l’authentification (monolog), ou d’autres intégrations, il devient assez confus de vouloir passer d’un framework ou d’un projet à un autre.

Lorsque l’on utilise ces technologies, nous sommes tributaire de leurs versions, un vrai casse tête quand il faut tout mettre à jour. Nous simplifier la vie, c’est ce que nous propose Composer en étant le chef d’orchestre de vos dépendances.

Qu’est-ce que Composer ?

Composer est un outils pour la gestion des dépendances en PHP. Il permet de déclarer les librairies dont vous avez besoin pour votre projet et les installe pour vous.

Composer est le chef d’orchestre de vos dépendances.

A l’image d’un chef d’orchestre, il va pouvoir manager vos dépendances, contrôler les versions, aller les chercher et les installer.

Composer répond à ces problèmes :

  1. Vous avez un projet utilisant des librairies.
  2. Certaines de ces librairies dépendent d’autres librairies.
  3. Vous déclarez celle que vous voulez utiliser.
  4. Composer trouve les bonnes versions de chaque paquet nécessaire, puis les installe en les téléchargeant dans votre projet.

Installation

Note : Avant d’installer Composer, vérifiez que la libraire CURL est bien installée et activée. Dans le cas contraire, un rapide « sudo apt-get install curl » et c’est réglé. De plus, Composer utiliser GIT pour rapatrier les paquets, il faut donc qu’il soit installé sur la machine et qu’il face partie de l’environnement de développement, là encore, un simple « sudo apt-get install git » résoudra le problème.

Composer est constitué de deux parties, celle du répertoire contenant les fichiers et autres paquets, et une partie en ligne de commande qui permet de tout mettre en forme. Composer est le chef d’orchestre, qui cherche, télécharge, met à jours et partage.

$ cd /chemin/vers/votre/projet
$ curl -s http://getcomposer.org/installer | php

Vous devriez avoir maintenant un fichier « composer.phar » dans le dossier de votre projet. Pour confirmer, vous pouvez lancer la commande pour afficher les options de Composer.

$ php composer.phar

Configurer Composer : composer.json

Le fichier composer.json est le fichier de configuration de Composer. C’est lui qui va vous permettre de définir les options et les dépendances dont votre projet à besoin.

Pour la version la plus simple, si l’ORM Doctrine est une librairie liée à l’application :

{
    "require": {
        "doctrine/orm": "*"
    }
}

Pour une version spécifique de la libraire (ici Doctrine), il faut préciser le numéro de version :

        "doctrine/orm": "2.2.2"

On peut aussi combiner ces deux syntaxes :

        "doctrine/orm": "2.1.*"

Ainsi, Composer s’occupera de faire les mises à jour automatiquement de version en version mais s’arrêtera avant de passer la 2.2.

Une fois l’information transmise sur les librairies et leurs versions, il ne reste plus qu’à renseigner dans quel dossier télécharger tout cela.

{
    "require": {
        "doctrine/orm": "*"
    },
    "config": {
        "vendor-dir": "packages"
    }
}

Installation / Téléchargement des paquets

Une fois que vous avez configuré le composer.json avec toutes les librairies que vous désirez ainsi que leurs versions. Il ne vous reste plus qu’a entrer :

$ php composer.phar install

Vos fichiers se téléchargeront dans le dossier spécifié.

Le fichier composer.lock est un fichier créé par Composer lors de son installation, dans lequel se trouve toutes les versions des paquets qu’il a déployé. Ce fichier servira de référent lors d’une mise à jour de libraires. Composer saura alors, quelle version est déjà installée et quelle version est à installer.

Le chargement automatique : autoload.php

Lors de son déploiement, Composer a créé de nombreux fichiers, mais plus particulièrement un fichier autoload.php qui permet le chargement automatique de toutes les librairies désirées.

Une seule ligne à insérer dans votre application suffit pour en profiter :

include_once 'vendor/autoload.php';

Conclusion

Comme beaucoup de frameworks utilisent de nombreuses librairies, certains ont déjà emboîté le pas, en utilisant Composer pour leurs gestion. Par exemple, FuelPHP, CodeIgniter et Symfony2 l’utilisent déjà.

Grâce à Composer et sa manière de gérer les dépendances, il permet de nous faire gagner un temps précieux, tout en évitant de travailler avec des versions de librairies dépréciées.

Ressources :

https://github.com/composer/composer

http://getcomposer.org/doc

Une réponse à “Composer, un gestionnaire de paquets simple et efficace”

  1. [...] Note :Pour connaître Composer et comment s’en servir, un article y est dédié ici. [...]

Laisser un commentaire