Le fonctionnement est bon; améliorons maintenant la présentation.
Les pages du chapitre précédent répètent le doctype, head et parfois la navigation. Cette répétition fonctionne, mais elle rend chaque changement plus risqué. Nous allons partager le HTML commun et donner une place claire au CSS, aux images et au JavaScript facultatif.
Une vue fait trois choses
Titres, listes, formulaires et liens en HTML sémantique.
Valeurs fournies par le contrôleur, toujours échappées.
Assemblage de petits partiels communs.
Liens vers les styles, images et scripts publics.
Une vue ne décide pas tout
Boucler sur les livres, échapper un titre, choisir un élément HTML, afficher une erreur déjà préparée.
Interroger une base, modifier la session, décider des permissions ou valider une règle métier.
La nouvelle carte
src/views/
├── books/
│ ├── index.php
│ ├── create.php
│ └── edit.php
├── partials/
│ ├── head.php
│ ├── header.php
│ ├── footer.php
│ └── book-form.php
└── errors/
├── 404.php
├── 500.php
└── default.php
public/
├── css/app.css
├── img/logo.svg
└── js/books.jsEN RÉSUMÉ
Ce qu’il faut retenir
- Le contrôleur prépare; la vue présente.
- Un partiel évite de recopier le HTML commun.
- Les vues privées restent dans src/views.
- Les fichiers demandés directement par le navigateur vont dans public.