Chapitre 16. Etendre Smarty avec des plugins
La version 2.0 a introduit l'architecture de plugin qui est
utilisée pour pratiquement toutes les fonctionnalités
personnalisables de Smarty. Ceci comprend :
- les fonctions
- les modificateurs
- les fonctions de blocs
- les fonctions de compilation
- les filtres de pré-compilation
- les filtres de post-compilation
- les filtres de sorties
- les ressources
- les insertions
A part pour les ressources, la compatibilité avec les anciennes
façons d'enregistrer les fonctions de gestion avec l'API register_
est conservée. Si vous n'avez pas utilisé cette API et que vous avez
à la place directement modifié les variables de classes
$custom_funcs,
$custom_mods et
d'autres, vous devez alors modifier vos scripts pour utiliser
l'API ou convertir vos fonctionnalités personnalisées en plugins.
Comment fonctionnent les plugins
Les plugins sont toujours chargés à la demande. Seuls les modificateurs
de variables, les ressources, etc invoqués dans les scripts de templates
seront chargés. De plus, chaque plugin n'est chargé qu'une fois, et ce
même si vous avez plusieurs instances de Smarty qui tournent dans
la même requête.
Les filtres de post/pré-compilation et les filtres de sortie sont des cas
un peu spéciaux.
Comme ils ne sont pas mentionnés dans les templates, ils doivent être déclarés
ou chargés explicitement via les fonctions de l'API avant que le template
ne soit exécuté. L'ordre dans lequel les filtres multiples d'un même type
sont exécutés dépend de l'ordre dans lequel ils sont enregistrés ou chargés.
Le répertoire de plugin peut
être une chaîne de caractères contenant un chemin ou un tableau contenant
de multiples chemins. Pour installer un plugin, placez-le simplement
dans un de ces dossiers et Smarty l'utilisera automatiquement.