Nuevo en la versión 1.9.0: Las estrategias css, url y html_attr se añadieron en Twig 1.9.0.
El filtro escape escapa una cadena para una inserción segura en la salida final. Es compatible con diferentes estrategias de escape en función del contexto de la plantilla.
De manera predeterminada, se utiliza la estrategia de escape HTML:
{{ user.username|escape }}
Por conveniencia, el filtro e está definido como un alias:
{{ user.username|e }}
Además, puedes usar el filtro escape fuera del contexto HTML gracias al argumento opcional que define la estrategia de escape a usar:
{{ user.username|e }}
{# es equivalente a #}
{{ user.username|e('html') }}
Y aquí tienes cómo escapar variables incluidas en código JavaScript:
{{ user.username|escape('js') }}
{{ user.username|e('js') }}
El filtro escape admite las siguientes estrategias de escape:
Nota
Internamente, escape utiliza la función htmlspecialchars nativa de PHP.
Prudencia
Al utilizar el escape automático, Twig intenta no escapar doblemente una variable cuándo la estrategia de escape automático es la misma que la aplicada por el filtro escape; Pero esto no trabaja cuándo utilizas una variable como estrategia de escape:
{% set strategy = 'html' %}
{% autoescape 'html' %}
{{ var|escape('html') }} {# no se escapará doblemente #}
{{ var|escape(strategy) }} {# no se escapará doblemente #}
{% endautoescape %}
Cuándo utilizas una variable como estrategia de escape, deberías desactivar el escape automático:
{% set strategy = 'html' %}
{% autoescape 'html' %}
{{ var|escape(strategy)|raw }} {# no se escapará doblemente #}
{% endautoescape %}
- strategy: La estrategia de escape
- charset: La cadena del juego de caracteres