Le moteur de template PHP Hyla TPL
accueil >
Cours >
CRéATION DE SITE >
Le moteur de template PHP Hyla TPL
Cours / tutoriel écrit le 13-07-2010 par sky
Comment utiliser un moteur de template en PHP : Hyla Tpl
Il existe plusieurs solutions de moteur de template en PHP.
A chaque moteurs ses avantages et inconvénients ...
On va donc voir le moteur de template tout récent qui porte le nom de
Hyla TPL
Pour télécharger le moteur de template :
http://tpl.hyla-project.org/fr/telecharger
Le moteur de template PHP Hyla Tpl est en une seul class PHP pour un poids de 22ko, affiche de superbe performances et est simple à mettre en place.
Principe
Le principe d'un moteur de template PHP est de séparer le contenu du langage de programmation et de simplifier le travail en web design.
Exemples
<?php
include('./hyla_tpl.class.php');
// Création de l'objet Hyla_Tpl
// Le paramètre est le chemin du répertoire ou vont être stocker les fichiers template
// Pas de slash de fin (/)
$Tpl = new Hyla_Tpl('.');
// Import le fichier template de l'index
$Tpl->importFile('index.tpl');
// setVar permet d'assigner une valeur à un mot clef
$Tpl->setVar('prenom', 'Pierre');
$Tpl->setVar('nom', 'Deloin');
// Pour afficher le résultat :
echo $Tpl->render();
?>
Le fichier index.tpl :
<h1>Page index</h1>
<p>Bonjour {$nom} {$prenom}</p>
Nous avons donc dors et déjà un système de template PHP qui fonctionne.
Les listes de données
Allons un peux plus loin en récupérant des informations d'une base de donnée :
<?php
// Conexion MySQL
// Include du moteur de template Hyla
include('./hyla_tpl.class.php');
// Création de l'objet Hyla_Tpl
// Le paramètre est le chemin du répertoire ou vont être stocker les fichiers template
// Pas de slash de fin (/)
$Tpl = new Hyla_Tpl('.');
// Import le fichier template de l'index
$Tpl->importFile('actualites.tpl');
$requete = "SELECT id,titre,date FROM Actualites";
$sql = mysql_query($requete);
$nbrNews = mysql_num_rows($sql);
while($row = mysql_fetch_assoc($sql))
{
$Tpl->setVar('actu', $row);
$Tpl->render('actualites');
}
// Le nombre d'élément retournés :
$Tpl->setVar('nbr_news', $nbrNews);
// Pour afficher le résultat :
echo $Tpl->render();
?>
Le fichier actualites.tpl :
<h1>Actualités</h1>
<p>
Nombre total d'actualités : {$nbr_news}
</p>
<table width="100%">
<tr>
<th>ID</th>
<th>Titre</th>
<th>Date</th>
</tr>
<!-- BEGIN actualites -->
<tr>
<td>{$actu.id}</td>
<td>{$actu.titre}</td>
<td>{$actu.date}</td>
</tr>
<!-- END actualites -->
</table>
Pour finir, un truc sympa pour alterner une couleur de fond :
<table width="100%">
<!-- BEGIN ligne -->
<tr style="background:{!cycle:'#dedede','#f0f0f0'}">
<td>{$message}</td>
</tr>
<!-- END ligne -->
</table>
Il existe d'autres moteurs de template comme smarty, phplib, vtemplate ou phptal...
Vous pouvez retrouver un comparatif entre divers moteurs de template ici : http://g-rossolini.developpez.com/comparatifs/php/templates/?page=conclusion#LVII-A-2
Commentaires
Benji59226 le 25-02-2011
trop top
hugo le 21-07-2010
Hey,
merci pour l'article ;)