logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Detección y verificación de variables en plantillas Twig

19/06/2025, by Ivan

Menu

Al trabajar con un archivo de plantilla Twig, la mayoría de las variables están documentadas en los comentarios del archivo de plantilla. Sin embargo, cuando no es así, o cuando temas o módulos introducen nuevas variables, necesitamos una forma de descubrir todas las variables disponibles dentro de la plantilla. Twig proporciona la función dump() para descubrir y verificar variables en archivos de plantilla.

La función dump() no mostrará salida a menos que la depuración esté habilitada. Aprende cómo habilitar la depuración de Twig.

Una vez habilitada, la función dump() puede usarse para mostrar información sobre una variable o variables dentro de la plantilla.

Verificación de una variable

Si tienes una variable title en tu plantilla, lo siguiente imprimirá su contenido en la plantilla:

{{ dump(title) }}

Descubrir todas las variables disponibles en la plantilla

Para mostrar todas las variables disponibles y su contenido en la plantilla, añade lo siguiente (tras habilitar la depuración):

{{ dump() }}

Para mostrar solo las claves de las variables disponibles, usa:

{{ dump(_context|keys) }}

En todas las plantillas Twig están disponibles además estas variables globales:

  • _self se refiere a la plantilla actual y contiene información extendida sobre la plantilla, como el nombre de la clase compilada y el entorno Twig. _self está obsoleta y fue removida en Twig versión 2.x.
  • _context se refiere al contexto actual y contiene todas las variables pasadas a la plantilla, como las variables enviadas desde theme(), preparadas en preprocess o establecidas en la plantilla. Usar {{ dump() }} sin variable equivale a {{ dump(_context) }}.
  • _charset se refiere al conjunto de caracteres actual.

Precaución con dump()

Si quieres ver todas las variables pero dump() provoca agotamiento de memoria debido a recursión o similar, puedes inspeccionar _context para ver todas sus claves:

<ol>
  {% for key, value in _context  %}
    <li>{{ key }}</li>
  {% endfor %}
</ol>

Luego usa una comprobación condicional (por ejemplo, {% if loop.index == 2 %}) para mostrar solo el valor cuando lo necesites.

Más información

Consulta la documentación de la función dump de Twig para aprender más sobre dump.

Depuración con xdebug

La forma más recomendada de depurar es usar un IDE con el plugin xdebug.

La configuración más sencilla es usar PHPStorm (comercial) y xdebug. Microsoft VSCode es un IDE gratuito y de código abierto con plugins que hacen lo mismo sin que tengas que comprar software comercial.

Usar xdebug te permitirá seguir el proceso, inspeccionar el contenido de variables y hacerlo de forma que evites ciclos infinitos que pueden ocurrir con dump o kint.

Un módulo útil llamado twig_xdebug puede ayudar a mostrar las variables disponibles en xdebug.

Depuración con kint

La función dump() en Twig suele imprimir mucho texto en la página web, lo que dificulta encontrar la aguja en el pajar.

Una alternativa a dump() es kint, una herramienta de depuración para PHP. La función kint() funciona igual que dump() pero ofrece una interfaz expandible y navegable para las variables mostradas.

El proyecto devel provee el módulo devel kint, que permite a desarrolladores usar kint() en lugar de dump().

1. Descarga el módulo devel.
2. Activa el módulo «devel kint».
3. Al igual que dump(), kint() no mostrará salida si no está activada la depuración. Aprende cómo habilitar la depuración Twig.
4. En tus archivos .twig usa kint() para inspeccionar variables, igual que con dump().
5. Opcionalmente, instala y activa el módulo Search Kint para buscar en la lista de variables anidadas.

Método y clase de la política de lista blanca (whitelist)

Al trabajar con objetos, se permite (lista blanca) solo la invocación de ciertos métodos de obtención y establecimiento o acceso a objetos mediante la clase TwigSandboxPolicy. Esto previene llamadas a métodos arbitrarios en tus plantillas. Por ejemplo, {{ node.delete }} en un objeto nodo podría borrar el nodo si no hubiera lista blanca. Puedes extender esta lista blanca agregando en tu archivo settings.php lo siguiente:

$settings['twig_sandbox_whitelisted_methods'] = [
  'id',
  'label',
  'bundle',
  'get',
  '__toString',
  'toString',
  'referencedEntities',
];

donde 'referencedEntities' es un método que quieres usar en tu plantilla.