Capítulo 16. Extendendo a Smarty com Plugins
A Versão 2.0 introduziu a arquitetura de plugin que é usada para quase todas as
funcionalidades customizáveis da Smarty. Isto inclui:
- funções
- modificadores
- funções de bloco
- funções de compilador
- prefiltros
- posfiltros
- filtros de saída
- recursos
- inserir
Com a exceção de recursos, a compatibilidade com a forma antiga de funções de
manipulador de registro via register_* API é preservada. Se você não usou o API mas no lugar disso
modificou as variáveis de classe
$custom_funcs,
$custom_mods, e
outras diretamente, então você vai
precisar ajustar seus scripts para ou usar API ou converter suas
funcionalidade customizadas em plugins.
Como os Plugins Funcionam
Plugins são sempre lidos quando requisitados. Apenas os modificadores específicos,
funções, recursos, etc convocados em scripts de template serão lidos. Além disso, cada plugin
é lido apenas uma vez, mesmo se você tem várias instâncias diferentes da Smarty rodando na mesma
requisição.
Pre/posfiltros e filtros de saída são uma parte de um caso especial. Visto que eles não são mencionados
nos templates, eles devem ser registrados ou lidos explicitamente via funções de API antes do template
ser processado.
A ordem em que multiplos filtros do mesmo
tipo são executados dependem da ordem em que eles são registrados ou lidos.
O diretório de plugins
pode ser uma string contendo um caminho ou um array
contendo multiplos caminhos. Para instalar um plugin,
simplesmente coloque-o em um dos diretórios e a Smarty irá usá-lo automaticamente.