Déclarer PSR-4

Exercice 2 sur 4 du chapitre 4 · 100 XP · 3 objectifs vérifiés par des tests

Notions abordées : PSR-4autoloadcomposer dump-autoload

Votre autoloader du chapitre précédent suit une règle simple : le préfixe Gazette\ correspond au dossier src/. Cette règle est si répandue qu'elle porte un nom, PSR-4, et Composer sait l'appliquer. Il suffit de la lui déclarer.

Votre mission

  1. Dans composer.json, ajoutez une section autoload, au même niveau que require (pas à l'intérieur), qui déclare, en PSR-4, le préfixe Gazette\ vers le dossier src/.
  2. Dans la console, lancez composer dump-autoload : Composer relit composer.json et régénère vendor/autoload.php.
  3. Lancez les tests. Ils chargent Gazette\Article sans passer par votre autoloader, avec celui de Composer seulement.

public/index.php garde son autoloader pour l'instant : on le remplacera à l'exercice suivant.

Rappel

PSR-4 est une recommandation commune aux projets PHP : un préfixe d'espace de noms correspond à un dossier, et le reste du nom de la classe au chemin du fichier. Gazette\Meteo\Bulletin se trouve dans src/Meteo/Bulletin.php. Composer ne relit pas composer.json à chaque requête : après un changement de l'autoload, on relance composer dump-autoload.