Les rubriques en ligne

Exercice 6 sur 9 du chapitre 5 · 150 XP · 3 objectifs vérifiés par des tests

Notions abordées : Paramètre de routeEnumfrom()

Gaston ne lit que la météo, Odette que la fête du village. Chaque rubrique aura sa page : /rubriques/meteo, /rubriques/fete-du-village, /rubriques/faits-divers. Le nom dans l'adresse est la valeur de l'énumération Rubrique, celle que vous lui avez donnée au chapitre 2.

Votre mission

  1. Ajoutez à Redaction une méthode statique public static function articlesDe(Rubrique $rubrique): array, qui renvoie la liste des articles de cette rubrique. Comme publications(), elle s'appelle sur la classe : Redaction::articlesDe(Rubrique::Meteo).
  2. Déclarez la route GET /rubriques/{nom} : retrouvez la rubrique avec Rubrique::from(), puis affichez <h2 class="titre-rubrique"> avec son libellé et ses articles dans <main class="articles">. L'onglet affiche « libellé — La Gazette de Saint-Glinglin ».
  3. Sur chaque article, l'étiquette de la rubrique (<p class="rubrique">) devient un lien vers la page de la rubrique.

Rappel

Une énumération « à valeurs » (enum Rubrique: string) sait retrouver un cas depuis sa valeur : Rubrique::from('meteo') donne Rubrique::Meteo, et ->value fait le chemin inverse. Avec une valeur inconnue, from() lance une erreur : on s'en occupera au prochain exercice.