Nuevo en Symfony 4.1: Prioridad en las extensiones Twig

Twig permite sobrecargar filtros, funciones, variables globales, etc. de manera que tu aplicación pueda cambiar el comportamiento de cualquiera de ellos. La sobrecarga de estos elementos se realiza en una nueva extensión Twig que se debe registrar lo más tarde posible para que ya estén definidos los filtros/funciones que vas a cambiar.

Si utilizas Twig de manera aislada, es muy fácil controlar el orden en el que estás registrando las extensiones. Sin embargo, no sucede lo mismo si utilizas Twig dentro de una aplicación Symfony.

En Symfony 4.1, para permitir que puedas redefinir cualquier elemento de Twig, hemos añadido soporte para definir prioridades en las extensiones Twig. El funcionamiento es el mismo que en otras partes del framework: la prioridad se define en el atributo priority de la etiqueta del servicio asociado (twig.extension en este caso) y es un número entero positivo o negativo:

# config/services.yaml
services:
    # ...
    App\Twig\AppExtension:
        public: false
        tags:
            # cuanto más grande sea el número, antes se registra
            - { name: twig.extension, priority: -1024 }

El único problema es que cuando se define la prioridad no puedes utilizar la configuración automática de servicios y tienes que definir la extensión Twig como un servicio de manera explícita (para que puedas añadir el atributo priority).

Esta funcionalidad fue contribuida por Matt Brunt en el pull request #24777.

Fuente: New in Symfony 4.1: Twig extensions priority

Comentarios

Publicada el

27 de marzo de 2018

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.