22/12/2004

Les template : des solutions qui vous veulent du bien.

Qu'est ce qu 'un moteur de template ? Quel est l'intérêt ?

Le traitement des données via un langage de programmation peut se faire indépendamment de l’intégration HTML grâce à des outils nommés ‘parser’ (analyseur en français). Les données sont envoyées à un ‘template’ ou ‘gabarit’ HTML qui est lu par le parser. L’affichage d’une page est donc rendu dynamique puisqu’il dépend directement des données traitées.
Ce genre de systèmes peremettent aux designers d'éditer des pages webs dynamiques sans pour autant toucher au langage logique d'un projet. Seules les compétences (X)HTML et CSS sont nécessaires, le template rend des langages comme PHP ou Perl "transparents" : le code est accéssible à l'intégrateur HTML.

Quels sont les différents moteurs sous PHP ?

Il existe actuellement plusieurs solutions open-source, en voici quelques-unes :

FastTemplate
A l’origine conçue pour le développement en Perl, elle a été adaptée depuis pour PHP.
Ses fonctionnalités sont :
- Chargement des templates,
- Assignation des valeurs pour les variables correspondantes,
- Remplacement des variables par la valeur,
- Affichage de la page.
Il s’agit d’une solution basique très facile d’accès mais donnant toutefois des résultats inférieurs aux résultats des dernières solutions. Une étude menée par Globalis Media Systems, une entreprise experte en technologies du Web a montré que FastTemplate ne tirait que 40% des performances de PHP.
thewebmasters.net

PHPLib
Il s’agit d’une solution dont le principe est le même que FastTemplate. Elle s’utilise d’ailleurs de la même façon, un paramètre à prendre en compte dans la migration. Issu directement de la communauté PHP, cette solution offre de biens meilleurs résultats (80 à 90%) selon la même étude. Cependant le nombre de mises à jour étant assez faible, l’activité du projet semble limitée par rapport aux autres solutions.
Le projet sur sourceforge.net

VTemplate
Il s’agit d’une solution similaire à PHPLib ou FastTemplate bien que l’utilisation soit plus orientée ‘procédurale’ et donc plus logique. Si le projet est encore jeune, il me semble utile de l’étudier puisqu’il a été développé par une équipe française rendant la communication avec les concepteurs plus facile en cas de problème. Au niveau des performances de la solution, elle se situe légèrement en dessous de PHPLib (70%), cependant les dernières versions de VTemplate intègrent un système de cache réduisant les temps d’accès.
Virtual Template

Smarty
Smarty est issu directement de la communauté PHP et connaît des mises à jour très régulières ainsi qu’une communauté très importante ce qui en fait un projet actif.
Cette solution se distingue par sa complexité et donc ses fonctionnalités mais aussi ses exigences. En effet, son atout principal réside dans la compilation de fichier : le template ‘html’ n’est lu qu’à la première visite de la page, il est ensuite compilé en fichier PHP et donc interprété beaucoup plus rapidement par le serveur. Ce système est donc très utile dans le cadre d’un site comportant peu de mises à jour ou beaucoup d’archivages de page HTML.
Notons également que Smarty comprend un système de cache rendant encore plus rapide l’accès aux pages web.
Néanmoins son utilisation requiert l’apprentissage d’un pseudo-langage tiré de PHP qui servira notamment à modifier des variables à l’affichage de la page. (Exemple : afficher une date sous un certain format). Ce paramètre est à prendre en compte dans l’avancement du projet car s’il peut faire gagner du temps à l’internaute -Smarty peut améliorer les performances de PHP à hauteur de 110%, il nécessite une période d’apprentissage de la part du développeur.
Le Smarty officiel

ModeliXe
ModeliXe est également développé par une équipe française, son utilisation est assez originale par rapport aux autres solutions puisqu’elle utilise le balisage XHTML, un langage plus naturel par rapport à celui de Smarty. Certaines fonctionnalités s’avèrent être très intéressantes et ses performances sont très bonnes (95%). Notons que le projet Modelixe a été repris ce mois d’août par Remy TRICHARD.
Modelixe

Laquelle utiliser ?

Voici les quelques solutions que j'ai pu étudier, il en existe beaucoup d'autres qui ont chacune leurs avantages et inconvénients. Sachez qu'une solution de template se choisit d'abord en fonction de ses besoins, un petit projet ne néssitera surement pas une machine à gaz pour gérer la présentation. En revanche un projet lourd en interfaces et amené à évoluer très rapidement peut nécessiter une structure plus élaborée comme Smarty. Certaines grosses entreprises ou projets ont même leurs propres moteurs de template qui peut ainsi répondre parfaitement aux besoins et problématiques de l'activité de la plateforme en question.
Cependant le cout des moteurs de templates (charge serveur, contraintes, apprentissage, veille) n'etant pas nul, l'usage de moteurs de template ne doit pas etre systematique. Il s'agit d'une décision intervenant dans la structure même d'un projet mais également chez les différents acteurs !
Mon avis est : à chaque problème, sa solution. Les différentes possibilités offertes s'adressent toutes à des contraintes différentes, a vous de choisir celle qui est optimale.



Quelques sources :

Les templates sur wikipedia : l'ABC du template.
L'étude de Globalis Media System : notons que les chiffres anoncés sont à prendre avec des pincettes, le benchmark ayant été réalisé en 2002.
Section Templates sur PHP Index.
Un comparatif.

Trackbacks

Du code javascript dans votre blog !

Suite à la demande de Lionel qui avait des difficultés à insérer le code Javascript de weborama, je vous propose un exemple de script à insérer dans son blog pour y voir plus clair.

Une parenthèse technique :
Les blogs de blogSpirit utilisent la te...

Trackback par : Bouge ton blog ! | 23/04/2005

Un moteur de template avec le DOM...

Tout les moteurs de templates en php que j'ai trouvé sur le web fonctionne a peu près sur le même principe, recheche et remplacement de tags par expression régulière, des variables et des blocs pour faire des boucles.

Trackback par : Pololand | 12/02/2006

Ecrire un commentaire