Novidade no Symfony 4.1: Definição de Prioridade para as Extensões do Twig

Andréia Bohner
1 min readMar 11, 2018

--

O Twig suporta a sobrecarga de filtros, funções, variáveis ​​globais, etc. Não é uma funcionalidade comumente necessária, mas é útil para alterar o comportamento de alguma extensão usada em sua aplicação.

Para realizar a sobrecarga desses elementos é necessário defini-los em uma nova extensão Twig e registrar essa extensão o mais tarde possível para sobrescrever as outras extensões. Ao usar o Twig como um mecanismo de template autônomo, é fácil controlar a ordem em que as extensões são registradas. No Symfony, porém, você não possui controle sobre essa ordem de registro.

No Symfony 4.1, para permitir que você sobrecarregue qualquer elemento Twig, foi adicionado suporte para definir prioridades nas extensões Twig. Esse mecanismo de prioridade funciona da mesma forma que em outras partes da framework: a prioridade é definida como um inteiro positivo ou negativo no atributo priorityda tag de serviço relacionada (twig.extension nesse caso):

# config/services.yaml
services:
# ...
App\Twig\AppExtension:
public: false
tags:
# extensões com prioridades altas são registradas antes
- { name: twig.extension, priority: -1024 }

A única ressalva é que, ao definir prioridades, você não pode confiar na autoconfiguração de serviço e deve registrar a extensão Twig explicitamente como um serviço para definir o atributo priority.

Tradução de: New in Symfony 4.1: Twig extensions priority

--

--