php twig是一款灵活、快速、安全的PHP模板引擎,Twig将模板编译为纯粹的,最优化的PHP代码;Twig拥有沙盒模式,用于评估未受信任的模板代码;Twig由一个灵活的词法分析器和解析器驱动。

php twig

Twig是一款灵活、快速、安全的PHP模板引擎。

快速:Twig将模板编译为纯粹的,最优化的PHP代码。它的开销与常规的PHP代码相比,已经降到了极低。

安全:Twig拥有沙盒模式,用于评估未受信任的模板代码。这使得Twig可以用于允许用户自行修改模板设计的应用程序中。

灵活:Twig由一个灵活的词法分析器和解析器驱动。这使得开发者可以自定义标签和过滤器,并创建自己的DSL。

为何会有这款模板引擎?

在为PHP带来模板引擎时,许多人会告诉你PHP本身就是一款模板引擎啊。虽说一开始PHP是作为一门模版语言使用,但它并不像近年来的任何模板引擎一样发展。事实上,他不支持现代模板引擎的许多特性:

简洁:PHP语言在涉及到输出转义时冗长而可笑。<?php echo $var ?>

相比之下,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的语法非常易学,即使是网页设计师也能毫无阻碍地快速完成工作:

当然,PHP也是许多模板引擎项目中用到的语言。但它们中的大多数仍是使用PHP 4开发的,并且不支持最佳的web开发实践:

可扩展性:即使是在最复杂的情况下,Twig也足够灵活满足你的需求。得益于开放的体系,你可以实现你自己的语言结构(标签、过滤器、函数、甚至运算符等)来创建你自己的DSL。

已被单元测试:Twig经历过完整的单元测试,它是稳定的,能用于大型项目的。

文档:Twig拥有完整的文档,以及专用的在线手册,当然还有完善的API文档。

安全:说到安全,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代码相比,已经降到了极低。

更多相关知识,请访问PHP中文网!

php2twig,php twig是什么意思相关推荐

  1. php2twig,symfony2 twig模板引擎,symfony2twig模板_PHP教程

    symfony2 twig模板引擎,symfony2twig模板 1.基本语法 Says something:{{ }} Does something:{% %} Comment something: ...

  2. Smarty vs Twig: 性能对比

    Smarty是PHP语言里面最经典的模板引擎,如果你曾经开发过PHP程序,那么或多或少都有使用过它.Smarty在2010年发布了第三版,Smarty 3用当下最新的PHP5进行了重构.它保留了原有的 ...

  3. twig 调用php函数,twig里使用js变量的方法

    本文实例讲述了twig里使用js变量的方法的方法.分享给大家供大家参考,具体如下: 先看一段代码 这个ajax请求的地址,无法正常正常访问. 这段代码里 jQuery("#my_input& ...

  4. php twig扩展,如何写一个自定义的 Twig 扩展

    书写扩展的主要目的就是把经常使用的代码移动到一个可重用的类中,比如说添加国际化支持.扩展可以定义标签. 筛选. 测试. 操作符. 全局变量. 函数和节点访客. 创建扩展也使得在编译执行的时候和代码运行 ...

  5. php扩展包是什么意思,php – 扩展或包括 – 什么是更好的Twig?

    何时使用继承: 您有50页共享相同的布局 – 您创建一个layout.twig作为父,每个页面扩展该layout.twig.所以父类是通用的,子类是特定的. 何时使用包括: 在50页中,有6页共享一块 ...

  6. twig模板引擎使用php,Twig模板引擎用法入门教程_PHP

    本文实例讲述了Twig模板引擎用法.分享给大家供大家参考,具体如下: 介绍 Twig是一个灵活.高效并且安全的PHP模板引擎. 如果你使用过Smarty.Django或者Jinja这类基于文本的模板引 ...

  7. Twig模板语言入门

    转载地址:http://pengbotao.cn/twig-template-language.html Twig中有两种定界符{% ... %} 和 {{ ... }} , 前一种用来执行语句,比如 ...

  8. php yaf twig,yaf-example

    其实很早之前就接触yaf了,但只是学习学习,没有深入的去了解和使用,但由于最近在重构一个项目,而重构所用到的框架就是yaf框架,正好趁此机会好好地使用了下yaf框架.本篇文章其实主要给一个yaf的例子 ...

  9. Yii2语言国际化配置Twig翻译解决方案

    转载 Yii2语言国际化配置Twig翻译解决方案 我自己在写项目的时候,不喜欢使用php自身的模板,主要是各种PHP标签让我烦,而且对Html的标签兼容也不够友好,所以我后面采用了twig模板,配置之 ...

最新文章

  1. 在医疗领域你知道哪些人工智能黑科技?
  2. Django学习记录-1
  3. Node.js Buffer静态方法
  4. boost::thread模块实现默认执行器的测试程序
  5. Linux:hping高级主机扫描
  6. Delta Lake——数据湖的可靠性
  7. div设置宽度,实现不等比缩放,或设置最小宽度 min-width
  8. gitlab 删除分支_如何删除gitlab上默认受保护的master主分支
  9. 修改mysql密码时遇见ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that correspo
  10. 年终了,看雪给努力又认真的你颁奖!
  11. ftp一句話download
  12. 谷歌电子市场开发流程(3)-关于加载界面的处理
  13. 学生适合做什么html网站,学生个人网页制作html
  14. 100M 免费 ASP + Access 空间 100M 免费 php+mysql 空间
  15. Python初学者(零基础学习Python入门)书籍、视频、资料分享
  16. 云计算技术基础复习知识点
  17. 基于Unity3D 的Vuforia SDK开发基础教程
  18. 虚拟机安装python3_虚拟机如何安装python
  19. 5G推动下,XR的需求“爆发”会来自B端还是C端?
  20. C1模拟试卷的一个算法题

热门文章

  1. 蓝桥杯训练总结(收官)
  2. 动态链接库(dlopen、dlsym、dlclose)(Linux)
  3. 读史鉴今:女人的十二种结局
  4. 外企人常使用的工作邮箱,建议收藏!
  5. Mybatis-原理总结
  6. python国内下载地址_python下载链接
  7. 最全 MySQL主从同步与主主同步
  8. ArcGIS教程:等值线
  9. C语言 半加器与全加器 详解
  10. vscode配置内存,解决窗口出现故障