image de composer
Qu'est ce que composer ?

Composer est un gestionnaire de dépendances pour le langage PHP.
Il permet de gérer efficacement les librairies tierces et leurs dépendances ainsi que l'autoload.
Il résout automatiquement les conflits de versions entre différentes librairies et facilite le processus d'installation, de mise à jour et de suppression des dépendances.
Si vous utilisez Laragon, composer est disponible sans avoir besoin de l'installer.
Pour vérifier si composer est disponible de manière globale vous pouvez simplement taper "composer" dans une console, s'il est installé la liste des commandes disponibles s'affichera.

  • Gestion des dépendances :
    Composer permet de spécifier les librairies tierces nécessaires à votre application et gère automatiquement leur installation et leur mise à jour.
  • Résolution des conflits de versions :
    Composer s'occupe de résoudre les conflits de versions entre les différentes dépendances, garantissant ainsi la compatibilité entre les librairies utilisées.
  • Chargement automatique des classes :
    Composer génère automatiquement un fichier d'autoload qui charge les classes nécessaires à partir des librairies tierces, simplifiant ainsi l'inclusion des fichiers dans votre projet.
  • Installation simple et rapide :
    Composer est facile à installer et fonctionne sur la plupart des systèmes d'exploitation. Il est également extensible et personnalisable selon vos besoins spécifiques.
Installer une librairie tierce avec composer.
  • À l'aide d'un terminal, se placer dans le répertoire racine de l'application.
  • Utiliser la commande "composer require" pour installer la librairie
    composer require nom-de-la-librairie
  • Composer va télécharger les fichiers nécessaires et les placer dans un dossier vendor à la racine du projet.
  • Composer va également générer un fichier d'autoload dans le dossier vendor, il faut inclure ce fichier au lancement de l'application
    //Dans index.php require '../vendor/autoload.php';
Définir le namespace d'une application à l'aide de composer.

Un des avantages de composer est la possibilité de gérer l'autoload de notre application, cela concerne l'autoload des librairies tierces ainsi que nos propres classes.
Pour charger nos classes de manière propre et efficace, le plus simple est de définir un namespace.
Voici la manière de procéder :

  • Si votre projet n'a pas encore de fichier composer.json il faut le créer (il se crée automatiquement à l'installation d'une librairie).
  • Il faut ensuite choisir le nom de notre namespace, il n'a aucune importance, il doit simplement respecter le PascalCase (une majuscule en début de mot et pas d'espace entre les mots, ex : UnePhraseEnPascalCase).
  • dans le fichier composer.json, ajouter une clé "autoload", suivi d'un clé PSR-4.
    Il ne reste plus qu'à indiquer le nom du namespace suivi de deux backslash et d'indiquer le dossier qu'on a choisi.
    { "autoload": { "psr-4": { "MonSuperNamespace\\": "un-dossier" } } }

Les classe se trouvant dans le dossier "un-dossier" se trouveront donc dans le namespace MonSuperNamespace, pour les utiliser dans un autre namespace il faudra juste les inclure à l'aide de "use MonSuperNamespace\MaSuperClasse;"