Bonjour,
Ca fait depuis très peu de temps que j'ai découvert les templates et que je me pose des questions là dessus. J'ai essayé la bibliotèque PHPlib (plus précisément le fichier template.inc) et je constate qu'il s'agit simplement d'un système de search&replace (oui je débute)
Prenons la fonction set_var de la classe template qui permet de, je cite:
* The function inserts the new value of the variable into the $varkeys and
* $varvals hashes.
set_var(string $varname, [string $value = ""], [boolean $append = false])
et voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 function set_var($varname, $value = "", $append = false) { if (!is_array($varname)) { if (!empty($varname)) { if ($this->debug & 1) { printf("<b>set_var:</b> (with scalar) <b>%s</b> = '%s'<br>\n", $varname, htmlentities($value)); } $this->varkeys[$varname] = "/".$this->varname($varname)."/"; if ($append && isset($this->varvals[$varname])) { $this->varvals[$varname] .= $value; } else { $this->varvals[$varname] = $value; } } } else { reset($varname); while (list($k, $v) = each($varname)) { if (!empty($k)) { if ($this->debug & 1) { printf("<b>set_var:</b> (with array) <b>%s</b> = '%s'<br>\n", $k, htmlentities($v)); } $this->varkeys[$k] = "/".$this->varname($k)."/"; if ($append && isset($this->varvals[$k])) { $this->varvals[$k] .= $v; } else { $this->varvals[$k] = $v; } } } } }
Sachant que l'utilité des templates est avant tout de séparer le contenant du contenu, d'où le php du html, alors, je pourrai très bien faire:
fichier template.php
fichier template.tpl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $phrase = "Kikou";
en considérant que la fonction echo et include n'est pas vraiment du pure code PHP puisque ils ne sont pas tellement significatif du langage PHP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php include("template.php"); ?> <html> <body> <?php echo $phrase; ?> </body> </html>
Par contre si on veut absolument une parfaite distinction entre un fichier html pure et un autre fichier .php, on pourrait dans ce cas utiliser un preg_replace + des expressions régulières qui va agir sur le fichier html.
Par exemple dans index.html il y a une ligne où y a marqué *titre*
Je pourrai alors dans un fichier php faire d'abord un file_gets_content sur index.html puis faire un preg_replace (ou str_replace) à l'aide d'expressions régulières pour "capturer" si je puis dire le mot *titre* et remplacer par ce que je veux.
Donc voilà, c'est quoi l'utilité des templates ? N'est-ce pas se compliquer la vie quand on peut faire simple?
Merci d'avance.
Partager