Blog

Utiliser composer dans vos projets web

Pourquoi devriez-vous utiliser composer dans vos projets web ? Et bien parce que c’est cool 🤩 !

Plus sérieusement, au-delà d’être facile à prendre en main, il vous permettra d’initialiser rapidement vos projets web, en allant jusqu’à verrouiller les mises à jour entre vos différents environnements !

L’architecture d’un site internet

Sur le versant purement technique, un projet web motorisé sur un CMS par exemple, est globalement constitué :

  • De sources techniques (ce qui nous intéresse ici) :
    • Un cœur
    • Des modules communautaires
    • Des thèmes communautaires
    • Mais surtout, de modules et au moins d’un thème développés spécifiquement pour votre projet
  • Enfin, et je ne vous apprends rien :
    • D’une base de données pour stocker les informations à afficher sur votre site
    • D’un répertoire où sont téléversés images et fichiers que vous utilisez sur votre site
    • etc…

Assurer la compatibilité coûte que coûte

Mais comment assurer que tout ce beau monde soit parfaitement compatible ensemble ?

C’est là que composer entre en jeu. En tant que gestionnaire de dépendances, il va s’assurer que tout ce qui sera installé sur votre site sera compatible, qu’il le restera dans le temps, et notamment grâce au respect de la sémantique de version. En d’autres termes, il aura pour fonction d’assembler les pièces de votre puzzle.

Pas d’inquiétudes, dans la majorité des cas, vous n’aurez probablement jamais besoin de maîtriser tout ce qui se trame derrière cette mécanique bien huilée. En revanche, lorsque vous développerez des modules que vous proposerez à la communauté de votre CMS favori, vous n’aurez pas d’autres choix que de vous plier à ces règles que je ne fais que survoler ici !

L’outil est devenu au fil des années un allié indispensable, bon nombre d’agences l’utilisent, et à juste titre :

  • Le travail collaboratif étant une évidence, nous utiliserons git pour versionner les projets
  • Un projet initialisé avec composer ne versionnera ni le core, ni les modules communautaires. Un fichier .gitignore vous sera proposé d’une manière ou d’une autre
  • Vous installerez et mettrez à jour vos modules en ligne de commande. De la même manière vous pourrez mettre à jour le core de votre CMS, suivant des procédures simples et clairement identifiées
  • Il ira même jusqu’à contrôler la version de PHP et de ses modules, automatiser l’installation de patchs etc…

Vous ne versionnerez donc que le strict nécessaire, vos projets seront plus légers, la visibilité accrue, et composer s’occupera de reconstruire le tout en téléchargeant pour vous, paquets et modules, qui seront nécessaires au fonctionnement de votre site internet.

Un outil adaptable et largement utilisé

La plupart des frameworks ou CMS récents (probablement tous), proposent ce mode opératoire. N’hésitez pas à vous documenter, mais voici quelques liens :

Le sujet étant vaste et passionnant, j’ai dans l’idée de rédiger une série d’articles visant à proposer des exemples complets de mise en œuvre. De l’initialisation d’un projet, jusqu’au déploiement en production.