Documentation · Chapitre 05

Réutiliser du HTML
sans le cacher.

Un partiel est un petit fichier de vue inclus dans une autre vue. Il reste du PHP et du HTML ordinaires.

Nous améliorons reading-list sans changer sa logique HTTP ni son stockage temporaire en session.

Le moteur cherche dans un dossier précis

La méthode partial() cherche uniquement sous src/views/partials. Le nom transmis est relatif à ce dossier.

phpaml — zsh
<?php $view->partial('header.php') ?>
<?php $view->partial('footer.php') ?>

Ces appels chargent src/views/partials/header.php et src/views/partials/footer.php. Un fichier absent provoque une erreur claire au lieu d’être silencieusement ignoré.

Créez le head commun

src/views/partials/head.php

phpaml — zsh
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="<?= $view->escape($description ?? '') ?>">
<title><?= $view->escape($title ?? 'Reading List') ?></title>
<link rel="stylesheet" href="/css/app.css">

Les opérateurs ?? fournissent une valeur de remplacement lorsque title ou description ne sont pas transmis.

Transmettez des valeurs au partiel

phpaml — zsh
<!DOCTYPE html>
<html lang="fr">
<head>
    <?php $view->partial('head.php', [
        'title' => 'Mes livres',
        'description' => 'Votre bibliothèque personnelle.',
    ]) ?>
</head>
<body>
    <?php $view->partial('header.php') ?>
    <main><!-- contenu propre à la page --></main>
    <?php $view->partial('footer.php') ?>
</body>
</html>

Le tableau du second argument est extrait seulement pour ce partiel. Le head reçoit donc les métadonnées dont il a besoin sans dépendre de variables globales.

Partiel ou page complète ?

Navigation partagéepartials/header.php
Champs titre + auteurpartials/book-form.php
Liste complète des livresbooks/index.php
Formulaire Ajouterbooks/create.php
Le moteur classique n’impose pas un système de layout

La composition se fait explicitement avec partial(). Cette transparence aide à comprendre quel fichier produit chaque morceau du document.