Twig的基础总结

栏目: PHP · 发布时间: 5年前

内容简介:Twig是一种模板引擎:1.  主要的语法有两种{% … %}和{{ … }}第一种是用来控制的,比如for循环;第二种是用来输出变量和表达式的。

Twig是一种模板引擎:

1.  主要的语法有两种{% … %}和{{ … }}

第一种是用来控制的,比如for循环;第二种是用来输出变量和表达式的。

2.  输出变量。如输出$hello:  {{hello}}

3.  如传递给模板的是对象或者数组,可使用点 . 来输出对象的属性或者方法,或者数组的成员,或者可以使用下标的方式。

    {{ data.info }}
    {{ data['info'] }}

这个需要结合后端代码理解,比如你用Twig页面走了一个后端接口,后端传了一个data数组过来,你就可以用上面的方法将data里面的info输出出来。

Twig的基础总结

4.  data.info在模板中会进行以下的操作

如果data是个数组,就尝试返回info成员,如果不存在的话,往下继续;

如果data是个对象,会尝试返回info属性,如果不存在的话,往下继续;

会尝试运行info方法,如果不存在的话,往下继续;

而第二种不一样:

for[‘bar’] —— for必须是个数组,尝试返回bar成员,如果不就返回null

5.  变量赋值 可以用set标签

    {% set foo = 'foo' %}
    {% set foo = [1, 2] %}
    {% set foo = {'foo': 'bar'} %}

6.  过滤器  filter

变量可以被过滤器修饰;过滤器和变量用(|)分割开;过滤器也是可以有参数的;过滤器也可以被多重使用。

一开始不知道这个,被坑了一把。这次可要牢记。

7.  函数  function

Twig有一些内置函数,例如返回0到3的数组就可以用到range函数:

{% for i in range(0, 3) %}
    {{ i }},
{% endfor %}

8.  流程控制 —— 支持 for循环 和 if/else if/eise 结构

例:

<h1>Members</h1>
    <ul>
        {% for user in users %}
            <li>{{ user.username | e }}</li>
        {% endfor %}
    </ul>

而这里的e就是过滤器的一种

9.  注释 —— 使用{{#…#}},注释掉包围的内容,可以注释单行或多行,这个比较简单,有一点基础都应该懂的。

10.  载入其它模板

(1).include标签,会返回经过渲染的内容到当前的模板里

例如:{% include ‘sidebar.html’ %} ,意思就是引用,这个我们的框架里面有很多。用法其实很简单。

(2).当前模板的变量也会传递到被include的模板里,在那里面可以直接访问你这个模板的变量。例如:

  {% for box in boxes %}
        {% include "render_box.html" %}
    {% endfor %}

在render_box.html中是可以访问box变量的;

11.  模板继承

(1).TWIG中最有用到功能就是模板继承,他允许你建立一个“骨骼模板”,然后你用不同到block来覆盖父模板中任意到部分。而且使用起来非常到简单。

(2).我们先定义一个基本页list.html.twig他包含许多block块,这些都可以被子模板覆盖。

Twig的基础总结

conten里面也有许多block,比如,before,filtrate等:

Twig的基础总结

比如这个,在子模块里就可以用同样的方法复写它:

Twig的基础总结

(3).下面定义了block块,是block body

Twig的基础总结

这个也不是很难理解,就相当于继承,和重写父类的方法。

Twig的基础总结

12.  子模板的定义

子模板:

注意:{% extends “base.html” %}必须是第一个标签。

其中block footer就没有定义,所以显示父模板中设置的默认值。

需要增加一个block的内容,而不是全覆盖,你可以使用parent函数

extends标签只能有一个,所以你只能有一个父模板;但有种变通到方法来达到重用多个模板到目的。

13.  macros 宏

宏有点类似于函数,常用于输出一些html标签。

这里有个简单示例,我们在control.loader.twig定义了一个输出 a标签的宏。我们经常使用的控件都是这么做的。

Twig的基础总结

这样我们就可以在需要的地方调用这些控件了,首先我们先引入

Twig的基础总结

然后调用:

宏参数是没有默认值的,但我们可以通过default过滤器来实现。

Twig的基础总结

暂时就总结到这里,以后遇到了再进行添加,以此共勉吧!加油。

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25295.html

Twig的基础总结

Twig的基础总结 微信打赏

Twig的基础总结 支付宝打赏

感谢您对作者Miya的打赏,我们会更加努力!    如果您想成为作者,请点我


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

MySQL入门很简单

MySQL入门很简单

黄缙华 / 清华大学出版社 / 2011-1 / 59.50元

《MySQL入门很简单》从初学者的角度出发,由浅入深,循序渐进地介绍了mysql数据库应用与开发的相关知识。书中提供了大量操作mysql数据库的示例,还提供了大量实例和上机实践内容,供读者演练。《MySQL入门很简单》附带1张dvd光盘,内容为与《MySQL入门很简单》内容完全配套的多媒体教学视频和《MySQL入门很简单》涉及的源代码。 《MySQL入门很简单》共分5篇。第1篇介绍数据库的基......一起来看看 《MySQL入门很简单》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具