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的打赏,我们会更加努力!    如果您想成为作者,请点我


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

查看所有标签

猜你喜欢:

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

大型网站技术架构

大型网站技术架构

李智慧 / 电子工业出版社 / 2013-9-1 / 59.00元

《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。 《大型网站技术架构:核心原理与案例分析》不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经......一起来看看 《大型网站技术架构》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具