La principal motivación para escribir una extensión es mover el código usado frecuentemente a una clase reutilizable como agregar apoyo para la internacionalización. Una extensión puede definir etiquetas, filtros, pruebas, operadores, variables globales, funciones y visitantes de nodo.
La creación de una extensión también hace una mejor separación del código que se ejecuta en tiempo de compilación y el código necesario en tiempo de ejecución. Por lo tanto, hace que tu código sea más rápido.

En este post te explicare paso a paso como Crear extensiones personalizadas en twig.

Creando la clase de la extensión

Para obtener la funcionalidad personalizada primero debes crear la clase para la extensión Twig. Como ejemplo vas a crear un filtro para dar formato a un precio suministrando un número en el precio:

Registrando una extensión como servicio

Ahora hay que dejar que el contenedor de servicios sepa de su nueva extensión declarando la misma:

YAML:

XML:

Relacionado:  Optimizar Sitios Wordpress

PHP:

Usando la extensión personalizada

Usar tu recién creada extensión de Twig no es diferente a cualquier otra:

Pasando otros argumentos a tu filtro:

Notas

Ten en cuenta que las extensiones Twig no se cargan de manera diferida. Esto significa que hay una mayor probabilidad de que obtengas una CircularReferenceException o ScopeWideningInjectionException si cualquier servicio (o tu extensión Twig —en este caso—) es dependiente del servicio Petición. Para obtener más información, échale un vistazo a Cómo Trabajar con Ámbitos