twig 是php模板引擎

twig帮助文档:

https://www.kancloud.cn/yunye/twig-cn/159684

相比之下,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 %}

安全:说到安全,Twig拥有一些独特的特性:

自动输出转义:为安全考虑,你可以全局启用自动输出转义,或者只对某个块启用:

{% autoescape true %}

{{ var }}

{{ var|raw }}     {# var won't be escaped #}

{{ var|escape }}  {# var won't be doubled-escaped #}

{% endautoescape %}

沙盒:Twig可以在沙盒环境下评估任意模版,用户只能访问一组有限的标签,过滤器,以及由开发者定义的对象方法。沙盒可以全局地或者单独对某些模版启用:

{{ include('page.html', sandboxed = true) }}

清晰的错误信息:无论何时你在模版中遇到了语法错误,Twig都会输出带有出错的文件名和行号的帮助信息。它非常有助于调试。

快速:Twig的目标之一就是尽可能地快。为了尽可能实现最佳的速度,Twig将模版编译成极致优化的PHP代码。它的开销与常规的PHP代码相比,已经降到了极低。

{% for item in navigation %}

{{ item.caption }}

{% endfor %}

My Webpage

{{ a_variable }}

有两种形式的分隔符:{% ... %} 和 {{ ... }}。前者用于执行语句,例如for循环;后者将表达式的结果输出到模板中。

###设置变量

你可以在代码块内为变量分配值。这里用到了 set 标签:

{% set foo = 'foo' %}

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

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

##过滤器

{{ name|striptags|title }}

###全局变量

以下变量在模板中始终可用:

_self: 引用当前模板;

_context: 引用当前上下文;

_charset: 引用当前字符集;

Members

{% for user in users %}

{{ user.username|e }}

{% endfor %}

##注释

{# note: disabled template because we no longer use this

{% for user in users %}

...

{% endfor %}

#}

被引入的模板render_box.html可以使用box变量。

模板的文件名,却决于模板加载器。举个例子:Twig_Loader_Filesystem允许你通过给定文件名称访问其他模板。你可以使用斜线来访问子目录内的模板:

{{ include('sections/articles/sidebar.html') }}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐