
le 06/11/2008 à 08:33
module smarty
Je vais parler de mon expérience personnelle.
En général, dans le milieu pro, tu as un designer qui fait une maquette, et ensuite, tu as un développeur qui doit coder la fonctionnalité désirée et le monteur HTML qui doit écrire le code HTML (ou le template smarty si tu utilises smarty).
Ben souvent, le monteur HTML bosse avant le développeur PHP. Celui ci découpe la maquette et il fait son montage HTML avec du texte en dur dans le HTML.
Ensuite, le développeur PHP va faire son code et remplacer ces textes en dur par des variables PHP.
Donc dans ce cas, smarty n'est que peu "utile", pour deux raisons.
1) le monteur HTML doit apprendre la syntaxe smarty
2) à cause du balisage smarty, le monteur HTML peut difficilement tester dans son navigateur la qualité de son montage
Mais on peut avoir un autre cas de figure : le développeur fait le code PHP avant que le monteur HTML monte sa page (ou tout simplement lorsque le monteur HTML doit modifier son montage alors que le code PHP est déjà écrit).
La, si tu as un site bien conçu, c'est à dire en séparant au maximum le code PHP du code HTML (moi, ce que je fais, c'est que j'ai des .php qui font des requetes SQL, qui traitent des formulaires, et ensuite, ce .php fait un require 'toto.html' et dans toto.html, je n'ai que des <?php echo $blu; ?> ou quelques if ou quelques for, mais en aucun cas des "traitements" PHP. Donc cette page HTML qui contient quand même du PHP pour afficher des données est "simple" d'accès).
Dans ce cas, en général, les monteurs HTML ne sont pas cons. Ils ont déjà vu du code PHP dans leur vie. Ils savent qu'un <?php echo $nb_result; ?> va afficher le nombre de résultat d'une recherche par exemple. Ils savent qu'un for va faire une boucle, etc.
Donc la aussi, je trouve l'intérêt de smarty limité, car le monteur HTML doit apprendre la syntaxe smarty (de même que le développeur).
Et entre un '<td>%wiz:membre.name;</td>' et un <td><?php echo $membre->name; ?></td>, je pense qu'il y'a "peu de différence".
Enfin, si, il y'en a une, dans le cas de smarty, tu as un parseur qui doit parser le template, et donc consommer du CPU.
En général, dans le milieu pro, tu as un designer qui fait une maquette, et ensuite, tu as un développeur qui doit coder la fonctionnalité désirée et le monteur HTML qui doit écrire le code HTML (ou le template smarty si tu utilises smarty).
Ben souvent, le monteur HTML bosse avant le développeur PHP. Celui ci découpe la maquette et il fait son montage HTML avec du texte en dur dans le HTML.
Ensuite, le développeur PHP va faire son code et remplacer ces textes en dur par des variables PHP.
Donc dans ce cas, smarty n'est que peu "utile", pour deux raisons.
1) le monteur HTML doit apprendre la syntaxe smarty
2) à cause du balisage smarty, le monteur HTML peut difficilement tester dans son navigateur la qualité de son montage
Mais on peut avoir un autre cas de figure : le développeur fait le code PHP avant que le monteur HTML monte sa page (ou tout simplement lorsque le monteur HTML doit modifier son montage alors que le code PHP est déjà écrit).
La, si tu as un site bien conçu, c'est à dire en séparant au maximum le code PHP du code HTML (moi, ce que je fais, c'est que j'ai des .php qui font des requetes SQL, qui traitent des formulaires, et ensuite, ce .php fait un require 'toto.html' et dans toto.html, je n'ai que des <?php echo $blu; ?> ou quelques if ou quelques for, mais en aucun cas des "traitements" PHP. Donc cette page HTML qui contient quand même du PHP pour afficher des données est "simple" d'accès).
Dans ce cas, en général, les monteurs HTML ne sont pas cons. Ils ont déjà vu du code PHP dans leur vie. Ils savent qu'un <?php echo $nb_result; ?> va afficher le nombre de résultat d'une recherche par exemple. Ils savent qu'un for va faire une boucle, etc.
Donc la aussi, je trouve l'intérêt de smarty limité, car le monteur HTML doit apprendre la syntaxe smarty (de même que le développeur).
Et entre un '<td>%wiz:membre.name;</td>' et un <td><?php echo $membre->name; ?></td>, je pense qu'il y'a "peu de différence".
Enfin, si, il y'en a une, dans le cas de smarty, tu as un parseur qui doit parser le template, et donc consommer du CPU.