Enfin quelqu'un qui se pose les bonnes questions ! Je suis développeur web pro depuis plusieurs années et j'ai depuis longtemps laisser tomber les moteurs de templates (et j'encourage tout le monde à le faire!).
Pour répondre au journal concretement : les moteurs de templates sont une mauvaise réponse à la question "comment séparer la forme (la Vue du modèle MVC) du fond (le code métier, le Modèle et le Controlleur) ?". En effet, c'est indispensable de les séparer _logiquement_ pour toutes les raisons que l'on connait (fiabilité, maintenance, bla bla). Mais cette séparation _logique_ peut parfaitement se faire en PHP. PHP a déjà toutes les fonctions qu'il faut (conditions, boucle, output buffering pour le cache, include, visilibité des variables, etc.) et surtout une syntaxe adaptée (short tag, "echo" qui peut s'écrire avec "=", syntaxe alternative pour les instructions du genre : if/endif, while/endwhile, etc.). Bref à quoi ça sert d'ajouter une surcouche, qui, comme il est très justement signalé, ne fait que réinventer ce que PHP sait déjà faire nativement ? Réponse : à rien.
Un framework à tester absolument pour son système de template en PHP parfaitement intégré au modèle MVC : Symfony
Personnel j'utilise un système de template assez proche du modèle de Symfony (affecter une variable de classe dans mon controlleur la rend automatiquement visible depuis le template, qui est un fichier php contenant du html et des instructions php quand il faut) et mes applications ne s'en portent que mieux :-)
Allez, encore quelques années et les gens vont aussi finir par comprendre l'inutilité des ORMs en PHP !
[^] # Re: Journal très pertinent
Posté par cgo2 . En réponse au journal De l'utilité des moteurs de templates en PHP. Évalué à 3.
Pour répondre au journal concretement : les moteurs de templates sont une mauvaise réponse à la question "comment séparer la forme (la Vue du modèle MVC) du fond (le code métier, le Modèle et le Controlleur) ?". En effet, c'est indispensable de les séparer _logiquement_ pour toutes les raisons que l'on connait (fiabilité, maintenance, bla bla). Mais cette séparation _logique_ peut parfaitement se faire en PHP. PHP a déjà toutes les fonctions qu'il faut (conditions, boucle, output buffering pour le cache, include, visilibité des variables, etc.) et surtout une syntaxe adaptée (short tag, "echo" qui peut s'écrire avec "=", syntaxe alternative pour les instructions du genre : if/endif, while/endwhile, etc.). Bref à quoi ça sert d'ajouter une surcouche, qui, comme il est très justement signalé, ne fait que réinventer ce que PHP sait déjà faire nativement ? Réponse : à rien.
Un très bon article sur le sujet : http://www.massassi.com/php/articles/template_engines/
Un framework à tester absolument pour son système de template en PHP parfaitement intégré au modèle MVC : Symfony
Personnel j'utilise un système de template assez proche du modèle de Symfony (affecter une variable de classe dans mon controlleur la rend automatiquement visible depuis le template, qui est un fichier php contenant du html et des instructions php quand il faut) et mes applications ne s'en portent que mieux :-)
Allez, encore quelques années et les gens vont aussi finir par comprendre l'inutilité des ORMs en PHP !