par
fred6012 » 12 nov. 2005, 16:21
On m'a dit que pour separer traitement et affichage, on peut passé par les buffer.
Cette solution serait elle efficace?
exemple:
Le fonction de bufferisation
function template($tpl, $var)
{
ob_start();
include($tpl);
$temp = ob_get_contents();
ob_end_clean();
return($temp);
}
Le contenu du fichier .tpl
<body>
<table width="600" border="0">
<tr bgcolor="#FFFF99">
<td><font face="Verdana" size="2" color="#000000">Id news</font></td>
<td><font face="Verdana" size="2" color="#000000">Titre</font></td>
<td><font face="Verdana" size="2" color="#000000">Contenu</font></td>
<td><font face="Verdana" size="2" color="#000000">Date</font></td>
</tr>
<tr bgcolor="#888888">
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[0]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[1]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[2]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[3]?></font></td>
</tr>
</table>
</body>
Le fichier php
$reponse = mysql_query('SELECT id, titre, contenu, timestamp FROM news ORDER BY id') or die (mysql_error());
$donnees=mysql_fetch_array($reponse);
echo template("templates/template.tpl", $donnees);
Donc coté php, on fait la requete et crée un array avec les donnees
Si je comprend bien, le buffer regroupe le contenu du fichier tpl et les données du traitement php afin d'avoir l'ensemble et les envoie
Efficace? Simple? ou la 1ere approche est "foireuse"?
On m'a dit que pour separer traitement et affichage, on peut passé par les buffer.
Cette solution serait elle efficace?
exemple:
Le fonction de bufferisation
[php] function template($tpl, $var)
{
ob_start();
include($tpl);
$temp = ob_get_contents();
ob_end_clean();
return($temp);
}[/php]
Le contenu du fichier .tpl
[php]<body>
<table width="600" border="0">
<tr bgcolor="#FFFF99">
<td><font face="Verdana" size="2" color="#000000">Id news</font></td>
<td><font face="Verdana" size="2" color="#000000">Titre</font></td>
<td><font face="Verdana" size="2" color="#000000">Contenu</font></td>
<td><font face="Verdana" size="2" color="#000000">Date</font></td>
</tr>
<tr bgcolor="#888888">
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[0]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[1]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[2]?></font></td>
<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[3]?></font></td>
</tr>
</table>
</body>[/php]
Le fichier php
[php] $reponse = mysql_query('SELECT id, titre, contenu, timestamp FROM news ORDER BY id') or die (mysql_error());
$donnees=mysql_fetch_array($reponse);
echo template("templates/template.tpl", $donnees);[/php]
Donc coté php, on fait la requete et crée un array avec les donnees
Si je comprend bien, le buffer regroupe le contenu du fichier tpl et les données du traitement php afin d'avoir l'ensemble et les envoie
Efficace? Simple? ou la 1ere approche est "foireuse"?