L3 Info : PHP et Applications Web
 
◃  Ch. 8 Gestion de projet Web  ▹
 

composer.json

  • Le fichier est au format JSON et se place à la racine de votre projet.
  • Fichier constitué de différents champs décrivant : le projet, les dépendances, l'autoloading, ...
  • Métadonnées du projet

    Champ Rôle
    name Identifiant unique du package (ex: vendor/nom-du-projet).
    type Type de package : project (site web), library (bibliothèque).
    description Description du projet.
    license Licence (ex: MIT, GPL-3.0, CC BY, ...).
  • Dépendances

    Section Rôle
    require Liste des bibliothèques nécessaires pour le projet.
    require-dev Liste des bibliothèques uniquement pour le développement (ex: tests, outils).

    Exemple :

    "require": {
      "php": "^8.1",                     // Version minimale de PHP
      "symfony/console": "^6.0"          // Bibliothèque Symfony Console
    },
    "require-dev": {
      "phpunit/phpunit": "^9.5"          // PHPUnit pour les tests
    }
  • Autoloading

    Type Rôle
    psr-4 Standard recommandé pour mapper les namespaces aux dossiers.
    classmap Charge automatiquement les classes depuis un dossier (moins flexible).

    Exemple :

    "autoload": {
      "psr-4": {
          "App\\": "src/",           // Namespace "App\" → dossier "src/"
          "Tests\\": "tests/"        // Namespace "Tests\" → dossier "tests/"
      }
    }