Le contrôleur prépare
Remplacez uniquement la méthode index() de AboutController. Le second argument de view() est un tableau associatif : chaque clé devient un nom disponible dans la vue.
public function index(Request $request): Response
{
return $this->view('about.php', [
'projectName' => 'Reading List',
'bookCount' => 3,
]);
}projectNamenom que la vue utilisera
Reading Listvaleur préparée par le contrôleur
La vue affiche sans faire confiance
src/views/about.php
<main>
<h1><?= htmlspecialchars($projectName, ENT_QUOTES, 'UTF-8') ?></h1>
<p>Vous suivez <?= (int) $bookCount ?> livres.</p>
</main><?= ... ?> est une forme courte de echo. htmlspecialchars transforme les caractères pouvant être interprétés comme du HTML. Cette protection est importante dès qu’une valeur peut provenir d’un formulaire, d’une URL ou d’une base de données. Le cast (int) garantit ici un nombre.
Suivez la valeur
'bookCount' => 3about.php$bookCount3 booksLa vue ne va pas chercher les données elle-même. Le contrôleur les lui remet explicitement, ce qui rend le flux lisible et testable.
QUESTIONS DE DÉBUTANT
Les questions normales à ce stade.
Pourquoi ne pas écrire le nombre directement dans la vue ?
Parce qu’une vraie valeur changera. La transmettre prépare le code aux données d’un service ou d’une base.
Puis-je transmettre un objet ?
Oui. Le projet initial transmet déjà un HomeModel à home.php.
Faut-il échapper tous les textes ?
Échappez les valeurs dynamiques affichées en HTML, surtout celles qui viennent d’un utilisateur ou d’une source externe.