美文网首页
twig模板的简单语法示例

twig模板的简单语法示例

作者: Fairyin | 来源:发表于2016-05-10 17:13 被阅读4997次

    TWIG 模板的主要特征。

    • 高效:Twig将模板编译成了优化了的PHP文件,与原生的PHP代码比较而言,性能损耗非常小。
    • 安全:Twig使用沙箱(sandbox)模式去运行模板中不被信任的代码。这使得我们可以选择Twig作为那些允许用 户修改模板的应用的模板引擎。
    • 灵活:Twig具有灵活的语法分析器和语法解析器,它允许开发人员定义自己的标签(tags)和过滤器(filters),并且创建自己的领域特定语言(DSL,domain specific language)。

    1. spaceless

    作用:消除页面中标签与标签之间的空格。

    {% spaceless %}
    <a rehf="bigood.com" target="_blank">Bigood.com</a>
    <a rehf="bigood.com" target="_blank">Bigood.com</a>
    {% endspaceless %}
    

    2. 输出一个变量

    {{ user.name }}
    {{ user['name'] }}
    

    3. if (判断一个变量是否存在)

    {% if user is defined %}
    {{ user.name }}
    {% else %}
    '没找到用户~'
    {% endif %}
    

    4. 条件语句

    or 和 and

    {% if a == '1' and b == '2' %}'true'{% endif %}
    {% if a == '1' or b == '2' %}'true'{% endif %}
    

    判断是否定义

    {% if user is not defined %}
        'user 没有定义'
    {% else %}
    {{ user.anme }}
    {% endif %}
    

    判断是否为 null

    {% if var is null %}
        {# do something #}
    {% endif %}
    

    判断是否为 false

    {% if var is sameas(false) %}
    'false'
    {% else %}
    'true'
    {% endif %}
    

    5. 循环

    按数组的 key 遍历

    {% for key in users|keys %}
    {{ key }}
    {% endfor %}
    

    按数组的key,value遍历

    {% for index, user in users %}
        {{ index }}:{{ user.id }}
    {% endfor %}
    

    6. autoescape

    将字符串安全地处理成合法的指定数据 (true 启用 | false 禁用)

    {% set var = '<a rehf="bigood.com" target="_blank">Bigood.com</a>' %}
    {% autoescape true %}
        {{ var }}         {# 将会以文本的形式输出 #}
        {{ var|raw }}     {# 将会以 html 标签的形式输出 #}
        {{ var|escape }}  {# 将会以文本的形式输出 #}
    {% endautoescape %}
    

    7. block

    相当于占位符,当被另一个模板继承时,可以调用这个模块。定义时的内容在继承的模板中默认是不会出现的,可以使用 {{ parent() }} 来显示。块名称可以使用字母数字字符和下划线,不允许使用破折号(-)。

    {% block header %}
    {% endblock %}
    

    8. extends

    类似 php 的 extends,不支持多重继承,只支持一个扩展模板
    {% include %}:包含模板
    {% extends %}:扩展模板
    {% embed %} xxx {% endembed %}:包含模板并扩展该模板的内容,相当于 include 和 extends 的结合体
    {% macro %} xxx {% endmacro %}:定义宏以便多次调用,与定义 PHP 函数无异
    {% from aaa import bbb as ccc %}:从指定模板导入宏并设置别名

    {% extends 'base.twig' %}
    

    总结: TWIG 的使用和 PHP 非常类似,多使用几次就可以很快速的解决一般的页面输入要求了。

    相关文章

      网友评论

          本文标题:twig模板的简单语法示例

          本文链接:https://www.haomeiwen.com/subject/dkyyrttx.html