public/index.php fait maintenant plus de 150 lignes, et Madame Lou s'y perd. Quand elle cherche la classe Annonce, elle fait défiler la page entière. Dans un projet PHP, chaque classe a son fichier, rangé dans src/.
Votre mission
- Déplacez chaque déclaration dans son propre fichier de
src/, qui porte son nom :src/Publication.php,src/Rubrique.php,src/Auteur.php,src/Article.php,src/Annonce.phpetsrc/Sommaire.php. Les fichiers vous attendent, vides. - Dans
public/index.php, chargez-les avecrequire_once, en partant de__DIR__, sur le modèlerequire_once __DIR__ . '/../src/Article.php';. - Attention à l'ordre : une classe ne peut pas implémenter une interface qui n'est pas encore chargée.
La une ne change pas, mais le code devient lisible.
Rappel
require_once exécute un autre fichier PHP, comme s'il était collé à cet endroit, et une seule fois même s'il est demandé deux fois. __DIR__ vaut le dossier du fichier en cours : un chemin construit à partir de lui marche d'où qu'on lance le script.