Recherche : Moteur de Template

Moteur de Template

Je vais dans cet article vous faire part d’une recherche faite il y a quelques années, complétée avec quelques recherches actuelles. Évidemment, c’était mes débuts en programmation Web, on ne se moque pas !  Pas plus que de ma super image d’ailleurs ! :D

But de la recherche

Alors que nous nous attaquions à notre premier vrai projet Web (personnel, certes, mais premier vrai projet quand même) un souci d’organisation, de partage des tâches, d’évolutivité et de propreté nous a poussé à étudier de plus près un mot retenu du coin de l’œil sur un vieux site qui parlait de programmation Web. Template. (Gabarit en français, mais quand même Template ça sonne mieux :p).

Après une courte recherche infructueuse, nous allions abandonner le mot clef « Template » sur Google, qui ne nous délivrait que des liens vers des kits graphiques ! Fort heureusement, une Nième page de Google nous avait donné le nom qui convenait: Moteur de Template. :pouce:

C’est sympa, mais quelle est l’utilité concrète d’un moteur ?

Utilité d’un moteur de Template

Il y a suffisamment de définitions et d’explications sur le Web pour que je n’y consacre pas un trop long paragraphe. Je vais juste détailler ici en quoi il est utile à notre projet, et de quelle manière nous l’utilisons.

La séparation en plusieurs couches (MVC) nous a permis d’isoler la couche présentation pour notre designer, tout en gardant une grande flexibilité de manipulation des données pour l’affichage (à ne pas confondre avec le traitement des données, fonction qui revient à la couche métier).

Avec un minimum de réflexion, nous avons pu faire une architecture qui nous permettra par la suite d’utiliser une deuxième série de Template. Pas clair ? C’est simple: avec notre première série de Template, nous avons fait une couche présentation assez complexe, puisque complètement liée à Javascript (le site est entièrement fait avec la technologie AJAX, j’en dirais plus sur le Full AJAX plus tard). Nous avons comme projet à long terme de rajouter une deuxième série de Template, avec une présentation plus épurée, plus simple et sans Javascript afin de permettre la navigation, en plus des utilisateurs n’ayant pas activé Javascript, aux PDA et autres téléphones portables.

Recherche sur les différents moteurs de Template

Je ne vais pas vous faire un comparatif détaillé de tous les moteurs de Template existants. :arf: Déjà, parce qu’il y en à trop, et surtout, parce que je n’en ai pratiqué qu’un seul (même si j’ai pas mal lu la théorie sur d’autres). Accessoirement, parce que c’est trop de travail, hem. Des comparatifs sont faits ici sur les principaux moteurs: http://g-rossolini.developpez.com/comparatifs/php/templates/ ou http://php.developpez.com/comparatifs/templates/. Il y en a probablement d’autres, mais j’ai trouvé ceux-la particulièrement intéressants !

Conclusion – Solution trouvée: Smarty!

Et oui! C’est la solution retenue. Ce moteur de template avait tout à mon sens ce que j’attendais: robuste, rapide, souple, très riche, une documentation complète, une communauté grandissante. De plus Smarty est développé et maintenu par le PHP Group (http://www.php.net), ce qui assure sa stabilité et sa durabilité! Sans compter qu’aujourd’hui, beaucoup de gens utilisent Smarty: http://smarty.net/resources.php !

La grande richesse du langage de Template de Smarty peut induire en erreur. En effet, il faut qu’un Template manie les données exclusivement pour l’affichage ! Sinon l’intérêt d’utiliser Smarty est réduit à pas grand chose, pour ne pas dire à rien. C’est à vous de juger ce qui dépend de l’affichage, ou de la couche métier.

Je ne décrirais pas sur ce blog l’utilisation basique de Smarty, détaillée dans de nombreux exemples, tutoriels, et dans la documentation officielle. Cependant, je publierais quelques astuces et techniques un tant soit peu avancées, pour vous faire découvrir la richesse de cet extraordinaire Framework.

Le prochain article sera un angle attaque pour percevoir la souplesse et la richesse de Smarty: les fonctions personnalisées !

Tagués avec : , , , , , ,
Publié dans Smarty

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*