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.

SeBDéveloppementphp,smartyQuelle 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. Parfois, il est nécessaire très pratique d'automatiser des traitements sur les templates....Un blog, c'est un blog !