简洁:PHP语言在涉及到输出转义时冗长而可笑。
<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
相比之下,Twig拥有非常简洁的语法,它使得模版更具可读性:
{{ var }}
{{ var|escape }}
{{ var|e }} {# shortcut to escape a variable #}
模版导向语法:Twig为通用的模式提供了快捷方式,例如在遍历一个空数组时,会显示一个默认文本:
{% for user in users %}
* {{ user.name }}
{% else %}
No users have been found.
{% endfor %}
全功能:Twig为你提供了轻松构建强大模版的一切:多重继承,块,自动化输出转义,以及其他许多特性:
{% extends "layout.html" %}
{% block content %}
页面内容...
{% endblock %}
自动输出转义:为安全考虑,你可以全局启用自动输出转义,或者只对某个块启用:
{% autoescape true %}
{{ var }}
{{ var|raw }} {# var won't be escaped #}
{{ var|escape }} {# var won't be doubled-escaped #}
{% endautoescape %}