美文网首页
Twig模板的使用

Twig模板的使用

作者: 我自静默向韶华 | 来源:发表于2017-03-30 11:38 被阅读0次

1.引言

    本文中小结了Twig模板的入门级的基本使用(仅适合入门),更多详细的使用方法可以访问:http://twig.sensiolabs.org/doc/2.x/ (英文) 来进行学习研究。

2.Twig——模板引擎

1.  {% ... %}和{{ ... }}

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

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

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

    {{ foo.bar }}

    {{ foo.[‘bar‘] }}

    返回的值不存在就会返回null;

4.  for.bar在模板中会进行以下的操作

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

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

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

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

    。。。会尝试运行isBar方法,如果不存在的话,返回null。

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

5.  twig中的全局变量

    _self    这个参看macro标签

    _context    这个就是当前的环境

    _charset    当前的字符编码

6.  变量赋值——具体参见set标签

    {% set foo = 'foo' %}

    {% set foo = [1, 2] %}

    {% set foo = {'foo': 'bar'} %}

7.  过滤器  filter

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

8.  函数  function

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

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

    {{ i }},

    {% endfor %}

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

    例:

    <h1>Members</h1>

    <ul>

        {% for user in users %}

            <li>{{ user.username | e }}</li>

        {% endfor %}

    </ul>

10.  注释 —— 使用{{#...#}},注释掉包围的内容,可以注释单行或多行

11.  载入其它模板

    i.详见include标签,会返回经过渲染的内容到当前的模板里

    例如:{% include 'sidebar.html' %}

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

    {% for box in boxes %}

        {% include "render_box.html" %}

    {% endfor %}

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

    加入其他参数可以使被载入的模板只访问部分变量,或者完全访问不到。

12.  模板继承

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

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

    iii.下面定义了4个block块,分别是block head, block title, block content, block footer

base.html

   iv.注意

       1.block是可以嵌套的

        2.block可以设置默认值(中间包围的内容),如果子模板里没有覆盖,那就直接显示默认值。比如block footer,大部分页面你不需要修改(省力),但你需要到时候仍可以方便到修改(灵活)

13.  子模板的定义

子模板

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

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

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

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

14.  HTML转义

    i.主要是帮助转义尖括号等 <,  >,  &,  " 

        可以有两种办法。一种是用标签,另一种是使用过滤器。

    因为 {{ 是TWIG的操作符,如果你需要输出两个花括号,最简单到办法就是

        {{ '{{' }}

    还可以使用raw标签和raw过滤器,详细参考手册

15.  macros 宏

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

    这里有个简单示例,定义了一个输出input标签的宏。

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

3.结语

    上面关于Twig的一些使用的方法,对于初学Twig的朋友们来说还是有点用处的。

    当然,有更多需要请百度,毕竟万事不解问百度,是我们一贯秉承的传统。

    本人随笔,一是希望可以给有需要的人提供一些帮助,再者是在以后的开发过程中遇到同类的问题,可以来回头看一看。

此致,撒花!!!

相关文章

  • symfony模板

    symfony默认的模板是twig,这是一个便携,高效,安全的模板引擎。 Twig twig是非常简洁的php模板...

  • Twig模板的使用

    1.引言 本文中小结了Twig模板的入门级的基本使用(仅适合入门),更多详细的使用方法可以访问:http://...

  • october中的twig模板

    october中使用twig模板语言扩展为多个函数,标签,过滤器和变量。这些扩展允许您使用CMS功能并访问模板中的...

  • Twig和Medoo之 环境安装

    Twig 简介: Twig是一个快速、安全、灵活的PHP模板引擎。Twig被广泛运用于Web/PHP项目的开发,更...

  • twig模板的简单语法示例

    TWIG 模板的主要特征。 高效:Twig将模板编译成了优化了的PHP文件,与原生的PHP代码比较而言,性能损耗非...

  • Twig 模板渲染前端基本使用

    1.{% ..... %}、{{ ......... }}、{# ...... #} {{...}} 用来输出模板...

  • drupal8 - 自定义theme工作流程

    模板引擎改为 Twig 使模板创建更简单,更安全。调试工具:DEVEL KNITsites/default/ser...

  • Twig模板引擎与Vue.js冲突导致显示空白的解决方法

    当在以twig为模板引擎的网站管理系统中使用Vue时,会出现冲突导致显示空白,Vue.js无法正常使用,主要原因是...

  • october cms页面介绍二

    动态页面 在页面模板的“ Twig”部分内,您可以使用october提供的任何功能,过滤器和标签。任何动态页面都需...

  • 在PHP里使用twig视图模板

    Twig优点 简洁、快捷、安全、灵活 且 易上手的 运行环境 1.X 版本 至少需要 PHP5.2.71.34版本...

网友评论

      本文标题:Twig模板的使用

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