Template de page
Utilisez une architecture MVC en PHP : Créer un template de page
Inclure des blocs de page
La première approche, que vous connaissez sûrement, consiste à créer des blocs de page dans des fichiers PHP différents avec, par exemple header.php et footer.php<?php require('header.php'); ?>
<h1>Mon super blog !</h1>
<p>Contenu de la page</p>
<?php require('footer.php'); ?>
Créer un template
On va créer un template (aussi appelé gabarit) de page. On va y retrouver toute la structure de la page, avec des "trous" à remplir.template.php :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
<link href="style.css" rel="stylesheet">
</head>
<body>
<?= $content ?>
</body>
</html>
Création de la vue
Il faut maintenant définir ce qu'on met dans ces variables. Voici comment on peut le faire dans la vue indexView.php qui affiche la liste des derniers billets :indexView.php
<?php $title = 'Mon blog'; ?>
<?php ob_start(); ?>
<h1>Mon super blog !</h1>
<p>Derniers billets du blog :</p>
<?php
while ($data = $posts->fetch()) {
?>
<div class="news">
<h3>
<?= htmlspecialchars($data['title']) ?>
<em>le <?= $data['creation_date_fr'] ?></em>
</h3>
<p>
<?= nl2br(htmlspecialchars($data['content'])) ?>
<br>
<em><a href="post.php?id=<?= $data['id'] ?>">Commentaires</a></em>
</p>
</div>
<?php
}
$posts->closeCursor(); //libère la connexion au serveur
?>
<?php $content = ob_get_clean(); ?>
<?php require('template.php'); ?>
> Voir cet exemple Easy-Micro