Smarty – postfilter ou output filter ?
Quelle est la différence entre les filtres de post-compilation et les filtres de sortie ?
Smarty est un excellent moteur de templates PHP. Ce framework compile les templates écris par les développeurs pour exécuter par la suite la version compilée[1].
Parfois, il est nécessaire très pratique d’automatiser des traitements sur les templates. Par exemple pour modifier les URLs, appliquer des filtres sur les adresses emails, … C’est pourquoi Smarty propose les systèmes de postfilters et output filters. Mais lesquels utiliser ?
Les postfilters sont appliqués après la phase de compilation et juste avant que le template compilé ne soit enregistré dans le cache. Alors que les output filters sont appliqués à l’exécution du template compilé. Qu’est-ce que cela change dans la pratique ? Dans le premier cas, les modifications sur le template sont réalisées une seule fois et enregistrées dans le cache. Dans le second cas, les modifications sont réalisées à chaque appel au template.
Les postfilters semblent être une solution plus performante que les output filters. Pourtant lorsque les traitements à appliquer sur un template doivent être dynamiques à l’exécution
[2], les output filters sont obligatoires.
Après ces quelques précisions, vous pouvez retourner à vos filtres[3]…
Notes
[1] Par souci d’optimisation des performances.
[2] Par exemple si les modifications dépendent du contexte utilisateur.
[3] N’oubliez pas qu’il existe aussi les prefilters qui sont appliqués avant l’étape de compilation de templates.
Laisser un commentaire