l'exemple :
Code : PHP
// inclusion de la classe template
require('includes/template.php');
// inclusion de la classe Cache
require('includes/cache.php');
// nouvelle instance de la classe Template
$tpl = new Template('templates');
// nouvelle instance de la classe Cache
$cache = new Cache ('cache');
// on assigne une simple variable 'bonjour'
$tpl->setVar('bonjour', 'Bonjour tout le monde !');
// on assigne plusieurs variable simultanément 'hello' et 'salut'
$bonjour = array('hello' => 'hello tout le monde !', 'salut' => 'salut tous le monde !');
$tpl->setVars($bonjour);
// supposons que l'array $user_list provienne d'une base de donnée...
// pour eviter d'utiliser des ressources inutilement, on va mettre
// en cache le résultat de la requête
// les résutats sont-ils en cache ? si oui on les
// récupère à partir du fichier et non de la requête
if (!$user_list = $cache->getCache('user_list'))
{
// mysql_connect, ETC...
$user_list = array(
1 => array(
'id' => 1,
'nom' => 'jean'),
2 => array(
'id' => 2,
'nom' => 'vincent'),
3 => array(
'id' => 3,
'nom' => 'maxime')
);
// on met en cache le résultat
$cache->setCache('user_list', $user_list);
}
// on l'assigne comme variable 'user_list'...
$tpl->setVar('user_list', $user_list);
// on compile le template user_list
$user_list_render = $tpl->fetch('user_list.php');
// et on l'assigne comme variable user_list_render...
$tpl->setVar('user_list_render', $user_list_render);
// on affiche la page entière
echo $tpl->fetch('exemple.php');
l'exemple (exemple.php) :
Code : PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Exemple de la classe template</title>
</head>
<body>
<?php echo $bonjour; ?>
<br />
<?php echo $hello; ?>
<br />
<?php echo $salut ?>
<br />
<?php echo $user_list_render; ?>
</body>
</html>
l'exemple (user_list.php) :
Code : PHP
<table>
<tr>
<th>Id</th>
<th>Nom</th>
</tr>
<?php foreach($user_list as $user): ?>
<tr>
<td><?php echo $user['id'];?></td>
<td><?php echo $user['nom'];?></td>
</tr>
<?php endforeach; ?>
</table>
On aurait pu aussi mettre en cache la page entière, mais vous avez compris le fonctionnement...
L'intérêt d'un tel système de cache et de permettre de générer par exemple un fichier XML à partir des résultats mis en cache par exemple.
!!! ATTENTION !!!
Le cache n'a pas de durée de vie, pour le mettre à jour :
Lors d'une requête d'ajout (vos pages de post/edition de messages, de news, etc.) inclure :
$cache->destroy('nom_du_fichier_ou_vous_avez_mis_le_cache);