Lead developer web


#PHP #Symfony #RabbitMQ #Redis #Git #Nginx
#Performance #Quality #Testing

Introduction à composer

PHP   Dépendances   Composer  

Aujourd'hui nous allons parler d'un outil très utile et très utilisé dans le "monde" PHP : composer

Nous verrons donc les points suivants :

Ceci n'est qu'une introduction. Comme d'habitude, la documentation officielle peut vous aider :)

A quoi ça sert ?

Composer est un gestionnaire de dépendances PHP. Ceci signifie qu'à partir d'un fichier de configuration, cet outil va récupérer les librairies qui vont seront utiles dans votre application. Plus précisément, pour chaque librairie il est possible de préciser une version min, max ou précise et composer fera le travail nécessaire.

Lors de son travail, ce gestionnaire de dépendance vérifiera également la compatibilité entre les différentes librairies. En effet chaque composant peut avoir une ou plusieurs dépendances fonctionnant avec des versions précises. Votre application peut donc se trouver avec des problèmes de compatibilité.

Exemple : votre application requiert Symfony >= 3.0 et vous voulez utiliser un bundle qui lui a une dépendance avec Symfony 2.*

A noter qu'un répertoire vendor contenant ces packages est créé par composer.

Utilisation

Bien entendu une installation est nécessaire. Je vous laisse voir la documentation pour cette partie.

Composer fonctionne avec deux fichiers présents à la racine de votre projet:

L'unique fichier à initialiser par vos soins est le composer.json, dont voici un exemple. Le fichier composer.lock est généré automatiquement par composer.

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Je ne vais pas rentrer dans les détails de configuration, la documentation est très complète. Dans notre exemple nous indiquons simplement que notre projet requiert le package monolog/monolog dans la version 1.0.*, ce qui signifie que la version 1.0.0 peut être installée tout comme la version 1.0.12 mais pas la version 1.1.0.

Pour installer les dépendances d'un projet il suffit d'exécuter la commande suivante à la racine de votre projet.

composer install

Si le fichier composer.lock existe alors composer installera les dépendances exactes précisées dans celui-ci. Dans le cas contraire, composer cherchera les dépendances adaptées et créerera le fichier composer.lock.

Imaginons maintenant que vous souhaitiez vérifier si une nouvelle version d'un package est disponible. La commande suivante vous sera alors utile :

composer update package

Si vous ne précisez pas de package, alors composer fera le travail sur toutes les dépendances de votre projet sans tenir compte du fichier composer.lock.

Pour terminer, deux petites commandes utiles :

composer require package [version]
composer remove package

Vous l'aurez compris, la première permet d'ajouter une dépendance et la seconde de la supprimer. Dans les deux cas, les fichiers composer.json et composer.lock seront mis à jour.

Conclusion

Composer est un outil très puissant et très pratique. Bien entendu dans ce post, déjà plus long que prévu, nous n'avons pas fait le tour du sujet mais vous pouvez déjà commencer à l'utiliser et j'espère avoir éclairci quelques points.