Mon premier autoloader

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

Notions abordées : Autoloadspl_autoload_register()Fonction anonyme

Six require_once, dans un ordre à respecter, et un oubli suffit à tout casser : Gaston en sait quelque chose. Or tous les fichiers suivent la même règle, la classe Article dans src/Article.php. Une règle, ça s'apprend à PHP.

Votre mission

  1. Enregistrez un autoloader avec spl_autoload_register() : une fonction qui reçoit le nom d'une classe inconnue et charge le fichier de src/ qui porte ce nom.
  2. Supprimez les require_once des classes : l'autoloader les remplace tous.
  3. Vérifiez que la une s'affiche toujours. Les tests ajouteront même une classe toute neuve dans src/, pour voir si elle se charge sans rien demander.

Rappel

Quand PHP rencontre une classe qu'il ne connaît pas, il appelle, avant d'abandonner, les fonctions enregistrées par spl_autoload_register(). C'est l'autoload : une classe n'est chargée que si on s'en sert, et l'ordre ne compte plus. La fonction passée ici n'a pas de nom : c'est une fonction anonyme, écrite directement à la place de l'argument : function (string $classe): void { … }. void annonce qu'elle ne renvoie rien. On reverra les fonctions anonymes en détail au chapitre 5.