Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Chapter 1. Qu'est-ce que Smarty ?

Smarty est un moteur de template pour PHP. Plus précisément, il facilite la séparation entre la logique applicative et la présentation. Celà s'explique plus facilement dans une situation où le programmeur et le designer de templates jouent des rôles différents, ou, comme la plupart du temps, sont deux personnes distinctes.

Supposons par exemple que vous concevez une page Web qui affiche un article de newsletter. Le titre, le sous-titre, l'auteur et le corps sont des éléments de contenu, ils ne contiennent aucune information concernant la présentation. Ils sont transmis à Smarty par l'application, puis le designer de templates éditent les templates et utilisent une combinaison de balises HTML et de balises de templates pour formater la présentation de ces éléments (tableaux HTML, couleurs d'arrière-plan, tailles des polices, feuilles de styles, etc.). Un beau jour le programmeur a besoin de changer la façon dont le contenu de l'article est récupéré (un changement dans la logique applicative). Ce changement n'affecte pas le designer de templates, le contenu arrivera toujours au template de la même façon. De même, si le le designer de templates veut changer complétement l'apparence du template, aucun changement dans la logique de l'application n'est nécessaire. Ainsi le programmeur peut changer la logique de l'application sans restructurer les templates, et le designer de templates peut changer les templates sans briser la logique applicative.

Un des objectifs de Smarty est la séparation de la logique métier de la logique de présentation. Celà signifie que les templates peuvent contenir des traitements, du moment qu'il soit relatif à de la présentation. Inclure d'autres templates, alterner les couleurs des lignes d'un tableau, mettre du texte en majuscule, parcourir un tableau de données pour l'afficher, etc. sont toutes des actions relatives à du traitement de présentation. Celà ne signifie pas que Smarty requiert une telle séparation de votre part. Smarty ne sais pas quoi est quoi, c'est donc à vous de placer la logique de présentation dans vos templates. Ainsi, si vous ne désirez pas disposer de logique métier dans vos templates, placez tous vos contenus dans des variables au format texte uniquement.

L'un des aspects unique de Smarty est la compilation des templates. Celà signifie que Smarty lit les templates et crée des scripts PHP à partir de ces derniers. Une fois créés, ils sont exécutés. Il n'y a donc pas d'analyse coûteuse de template à chaque requête, et les templates peuvent bénéficier des solutions de cache PHP comme Zend Accelerator (http://www.zend.com/) ou PHP Accelerator.

Quelques caractéristiques de Smarty :

  • Il est très rapide.

  • Il est efficace, le parser PHP s'occupe du sale travail.

  • Pas d'analyse de template coûteuse, une seule compilation.

  • Il sait ne recompiler que les fichiers de templates qui ont été modifiés.

  • Vous pouvez créer des fonctions utilisateurs et des modificateurs de variables personnalisés, le langage de template est donc extrémement extensible.

  • Syntaxe des templates configurable, vous pouvez utiliser {}, {{}}, <!--{}-->, etc. comme délimiteurs tag.

  • Les instructions if/elseif/else/endif sont passées au parser PHP, la syntaxe de l'expression {if...} peut être aussi simple ou aussi complexe que vous le désirez.

  • Imbrication illimitée de sections, de 'if', etc. autorisée.

  • Il est possible d'inclure du code PHP directement dans vos templates, bien que celà ne soit pas obligatoire (ni conseillé), vû que le moteur est extensible.

  • Support de cache intégré.

  • Sources de templates arbitraires.

  • Fonctions de gestion de cache personnalisables.

  • Architecture de plugins

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors