Une page par article

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

Notions abordées : Paramètre de routeLienMéthode

Sur la une, on ne lit que le début de chaque article. Les villageois veulent la suite ! Chaque article aura sa page, à l'adresse /articles/ suivie de son slug.

Votre mission

  1. Déclarez la route GET /articles/{slug}. Les accolades marquent la partie variable de l'adresse : son gestionnaire reçoit un tableau $parametres, et $parametres['slug'] vaut 'la-fete-de-la-citrouille' pour /articles/la-fete-de-la-citrouille. Retrouvez l'article avec Redaction::article($parametres['slug']).
  2. La page de l'article : <main class="lecture"> avec l'article complet, que renvoie $article->versHtmlComplet() (le neveu l'a ajoutée à Article), et un lien <a class="retour">← Retour à la une</a> vers la une. Le tout est mis en page par Page::rendre(), et l'onglet affiche « titre de l'article — La Gazette de Saint-Glinglin ».
  3. Dans src/Contenu/Article.php, sur la une, le titre de chaque article devient un lien vers sa page.

Construisez chaque adresse avec Url::vers(), jamais en dur.

Rappel

{slug} est un paramètre de route : il accepte n'importe quel texte sans /, que FastRoute range dans $route[2], le tableau passé au gestionnaire. Une méthode de la classe peut lire ses propriétés privées : versHtmlComplet() a le droit d'utiliser $this->texte, le code extérieur non.