Twig是一个现代的PHP模板引擎
- 快:树枝编译模板简化为简单优化的PHP代码。与常规PHP代码相比,开销减少到了最低。
- 安全:小树枝有一个沙盒计算不受信任模板代码的模式。这使得Twig可以用作用户可以修改模板设计的应用程序的模板语言。
- 灵活的:树枝是由一个灵活的词法分析程序而且解析器.这允许开发人员定义自己的自定义标记和过滤器,并创建自己的DSL。
作为模板引擎,Twig为什么比PHP好?
当谈到PHP中的模板引擎时,许多人会告诉您PHP本身就是一个模板引擎。但是,即使PHP最初是作为模板语言出现的,它在最近几年也没有像模板语言那样发展。事实上,它不支持许多现代模板引擎应该有的特性:
简洁的: PHP语言是冗长的,当涉及到输出转义时变得冗长得可笑:
1 2
<?php回声$var? ><?php回声:$varENT_QUOTES,“utf - 8”)? >
相比之下,Twig有一个非常简洁的语法,这使得模板更具可读性:
1 2 3
{{var}}{{var |逃避}}{{var|e}}{#快捷键转义变量#}
面向模板的语法Twig为常见模式提供了快捷方式,比如在迭代空数组时显示默认文本:
1 2 3 4 5
{%为users %}中的用户*{{user.name}}{%其他的%}没有找到用户。{%endfor%}
全功能的: Twig支持你需要轻松构建强大模板的一切:多重继承,块,自动输出转义,以及更多:
1 2 3 4 5
{%扩展“layout.html”%}{%块内容%}页面内容…{%endblock%}
- 简单易学语法很容易学习,并且经过优化,可以让网页设计师快速完成工作,而不会妨碍他们的工作。
当然,PHP也是一种可以找到更多模板引擎项目的语言。但他们中的大多数人还没有接受web开发的最佳实践:
- 可扩展性: Twig足够灵活,可以满足所有需求,甚至是最复杂的需求。得益于开放的体系结构,您可以实现自己的语言结构(标记、过滤器、函数,甚至操作符)来创建自己的DSL。
- 单元测试: Twig是完全经过单元测试的。这个库是稳定的,可以在大型项目中使用。
- 记录: Twig有完整的文档,有专门的在线书籍,当然还有完整的API文档。欧宝官网下载app
安全说到安全性,Twig有一些独特的功能:
自动输出转义:为了安全起见,你可以启用全局或代码块的自动输出转义:
1 2 3 4 5
{%autoescape“html”%}{{var}}{{var |生}}{# var不转义#}{{var |逃避}}{# var不会被双转义#}{%endautoescape%}
沙盒: Twig可以在沙箱环境中评估任何模板,用户可以访问由开发人员定义的一组有限的标签、过滤器和对象方法。对于某些模板,沙盒可以在全局或本地启用:
1
{{包括('page.html', sandboxed = true)}}
- 清除错误消息:无论何时在模板中出现语法问题,Twig都会输出一条有用的消息,其中包含发生问题的文件名和行号。它大大简化了调试。
- 快: Twig的目标之一是尽可能快。为了达到最好的速度,Twig将模板编译为简单优化的PHP代码。与常规PHP代码相比,开销减少到了最低。