Utiliser un moteur de template permet de découper proprement son code : d'un côté la vue, de l'autre le contrôleur... ça aide donc à utiliser le très pratique Modèle-Vue-Contrôleur.
Utiliser un système MVC augmente fortement la capacité de l'application à évoluer : il devient aisé, à partir d'un même contrôleur, de disposer de plusieurs vues représentant la même chose: par exemple on code d'abord une vue html, puis une vue xml, puis une vue json, puis une vue rss, etc. Le code des vues demeure très simple et c'est d'ailleurs _essentiel_.
Je dirais donc que l'un des principal intérêts du moteur de template est de forcer les développeurs à ne pas faire le code de l'application dans la vue.
Ca évite les mélanges, et c'est le début du développement en couche : on commence par le système de template, on continue en séparant le code métier du contrôleur, puis en utilisant une couche DAO en utilisant un ORM permettant d'abstraire la base de donnée (ou tout autre source de donnée, comme un web service).
Ainsi, le code d'une vue doit toujours être limité au maximum et doit concerner pratiquement uniquement la présentation de l'information issue du modèle. Sinon, c'est que l'on ne code pas "volatile" et "évolutif"... ce qui 'impliquera à terme la réécriture ou l'abandon de l'application, puisque toute application évolue, à part peut-être hello world!
Par conséquent, l'une des principales fonctionnalités du moteur de template et de tenter de restreindre les actions que peut réaliser le développeur dans la vue.
En outre, lorsque l'on utilise un moteur de template dont le langage est bien étudié comme TAL (en php l'implémentation de référence est PHPTAL je crois), créé pour les besoins de Zope et disponible dans la plupart des langages, un moteur de template peut aider fortement à la séparation graphiste/développeur.
En effet, le TAL s'intègre directement sous forme d'espace de nommage xml dans le html/xhtml, ce qui permet tout bêtement d'afficher un template non interprété directement dans le navigateur, ce qui sera généralement la "maquette statique" du site, et ceci va donc favoriser les échanges entre le développeur et les graphistes : les changement de l'un et de l'autre peuvent tourner dans le même fichier sans rentrer en conflit, il n'y a plus besoin d'intégrer une nouvelle maquette, il suffit de prendre le fichier modifié par le graphiste. Idéal pour un travail en équipe.
Pour un certain nombre de langage de template, il est possible d'utiliser des fonctions standards, simple à appliquer et très lisibles, pour mettre en forme le texte ou appliquer des filtres : par exemple, passer tout en majuscule, limiter la taille d'un champ et rajouter "..." à la fin, et j'en passe.
De plus, et ce n'est pas forcément négligeable, un système de template apporte encore 2 atouts:
- Il peut gérer un cache d'interprétation (de mémoire Smarty le fait), ce qui diminue la charge sur la machine et permet d'accueillir plus de visiteurs. On augmente donc à peu de frais la scalabilité de l'application.
- Finalement, c'est peut être un des points les plus importants, le plus simple de tous : un langage de template permet du code dans la vue, et non la vue dans du code (et oui, dans ce sens, php est déjà un système de template), ceci améliore la lisibilité, la compréhensibilité de la vue et par conséquence l'aisance de modification du code, donc son évolutive, sa maintenance et son exploitation.
Bref un système de template est un premier pas important pour faire en sorte qu'une application n'ai pas besoin d'être réécrite tous les 2 ans from scratch, et peut rendre bien des services ;)
# Evidemment que c'est interessant !
Posté par Temsa . En réponse au journal De l'utilité des moteurs de templates en PHP. Évalué à 8.
Utiliser un système MVC augmente fortement la capacité de l'application à évoluer : il devient aisé, à partir d'un même contrôleur, de disposer de plusieurs vues représentant la même chose: par exemple on code d'abord une vue html, puis une vue xml, puis une vue json, puis une vue rss, etc. Le code des vues demeure très simple et c'est d'ailleurs _essentiel_.
Je dirais donc que l'un des principal intérêts du moteur de template est de forcer les développeurs à ne pas faire le code de l'application dans la vue.
Ca évite les mélanges, et c'est le début du développement en couche : on commence par le système de template, on continue en séparant le code métier du contrôleur, puis en utilisant une couche DAO en utilisant un ORM permettant d'abstraire la base de donnée (ou tout autre source de donnée, comme un web service).
Ainsi, le code d'une vue doit toujours être limité au maximum et doit concerner pratiquement uniquement la présentation de l'information issue du modèle. Sinon, c'est que l'on ne code pas "volatile" et "évolutif"... ce qui 'impliquera à terme la réécriture ou l'abandon de l'application, puisque toute application évolue, à part peut-être hello world!
Par conséquent, l'une des principales fonctionnalités du moteur de template et de tenter de restreindre les actions que peut réaliser le développeur dans la vue.
En outre, lorsque l'on utilise un moteur de template dont le langage est bien étudié comme TAL (en php l'implémentation de référence est PHPTAL je crois), créé pour les besoins de Zope et disponible dans la plupart des langages, un moteur de template peut aider fortement à la séparation graphiste/développeur.
En effet, le TAL s'intègre directement sous forme d'espace de nommage xml dans le html/xhtml, ce qui permet tout bêtement d'afficher un template non interprété directement dans le navigateur, ce qui sera généralement la "maquette statique" du site, et ceci va donc favoriser les échanges entre le développeur et les graphistes : les changement de l'un et de l'autre peuvent tourner dans le même fichier sans rentrer en conflit, il n'y a plus besoin d'intégrer une nouvelle maquette, il suffit de prendre le fichier modifié par le graphiste. Idéal pour un travail en équipe.
Pour un certain nombre de langage de template, il est possible d'utiliser des fonctions standards, simple à appliquer et très lisibles, pour mettre en forme le texte ou appliquer des filtres : par exemple, passer tout en majuscule, limiter la taille d'un champ et rajouter "..." à la fin, et j'en passe.
De plus, et ce n'est pas forcément négligeable, un système de template apporte encore 2 atouts:
- Il peut gérer un cache d'interprétation (de mémoire Smarty le fait), ce qui diminue la charge sur la machine et permet d'accueillir plus de visiteurs. On augmente donc à peu de frais la scalabilité de l'application.
- Finalement, c'est peut être un des points les plus importants, le plus simple de tous : un langage de template permet du code dans la vue, et non la vue dans du code (et oui, dans ce sens, php est déjà un système de template), ceci améliore la lisibilité, la compréhensibilité de la vue et par conséquence l'aisance de modification du code, donc son évolutive, sa maintenance et son exploitation.
Bref un système de template est un premier pas important pour faire en sorte qu'une application n'ai pas besoin d'être réécrite tous les 2 ans from scratch, et peut rendre bien des services ;)