Twig es un motor de plantillas para PHP, es utilizado en Drupal desde la versión 8, una de las características más reconocidas de Twig es el sencillo uso de su sintaxis.
Twig básicamente resume su sintaxis en las siguientes 3 formas:
{{ ‘ mostrar_algo ’ }}
Para imprimir valores, pueden ser cadenas de texto o variables el fin será mostrar el valor.
Algunos ejemplos:
En Drupal las regiones se imprimen de la siguiente manera:
{{ page.content }}
También podríamos imprimir texto directo de la siguiente forma:
{{ ‘Esta es una cadena de texto‘ }}
{{ hacer_algo }}
Para ejecutar acciones, estos pueden ser estructuras de control (Condicionales o loops).
Ejemplo:
Añadimos al ejemplo anterior que imprime la region content de Drupal una condición que valide si tiene contenido:
{% if page.content %}
{{ page.content }}
{% endif%}
Pueden notar que las el modo en que se abren y cierran las llaves de acciones.
{# comentar algo #}
Para comentar dentro del archivo, de este modo se pueden realizar comentarios de una línea y de múltiples.
Este es un ejemplo de múltiples líneas:
{#
Theme override for the basic structure of a single Drupal page.
see template_preprocess_html()
#}
De una sola línea simplemente sería de la siguiente manera:
{# Comentario de una sola línea #}
Claro que Twig puede extenderse más con el uso de filtros, funciones e inclusiones, pero son temas que se ven sobre la marcha.
Symfony Var-Dumper
En el desarrollo de temas en drupal 8 usamos prácticamente twig en su totalidad y contamos con una función llamada Dump está nos permite hacer un debug a variables.
{{ dump(nombre_variable) }}
Ojo: Para poder usar herramientas de debug es necesario que previamente se haya configurado el sitio en el modo de desarrollo, para más detalles de eso pueden revisar el articulo acerca de configuración de archivos settings.local.php
Hay un inconveniente y es que en muchas ocasiones no es suficiente usar dump para poder desarrollar debido a que las variables u objetos son muy grandes y eso causa que no funcione correctamente. Para ello hay una solución, esta consiste en instalar y usar el módulo Devel, luego instalar Symfony Var Dumper usando composer
- Instalar el módulo Devel como cualquier otro.
- Symfony var-dumper se instala de la siguiente manera:
composer require symfony/var-dumper
Luego en la configuración del módulo Devel elegir la opción Symfony var-dumper
Finalmente para hacer debug sobre variables ya no se usará la función dump() , ahora será la función dpm()
Por ejemplo, en el page.html.twig de un tema explorare la region navigation de la siguiente manera:
{{ dpm(page.navigation) }}
Esto se mostrará así:
Hay flechas horizontales que al dar clic expanden sus valores pudiendo extenderse a voluntad y así poder inspeccionar cómodamente arrays gigantes.
Me pareció interesante el artículo
Añadir nuevo comentario