Twig模板引擎用法入门教程


Posted in PHP onJanuary 20, 2016

本文实例讲述了Twig模板引擎用法。分享给大家供大家参考,具体如下:

介绍

Twig是一个灵活、高效并且安全的PHP模板引擎。

如果你使用过Smarty、Django或者Jinja这类基于文本的模板引擎的话,那么你会觉得Twig是很自然而然的事情。Twig严格遵守了PHP的信念,同时增加了在模板环境中很有用的函数,这些做法使得Twig不论是对设计师还是开发人员,都是非常友好的。

Twig的主要特征有:

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

安全:Twig使用沙箱(sandbox)模式去运行模板中不被信任的代码。这使得我们可以选择Twig作为那些允许用户修改模板的应用的模板引擎。

灵活:Twig具有灵活的语法分析器和语法解析器,它允许开发人员定义自己的标签(tags)和过滤器(filters),并且创建自己的领域特定语言(DSL,domain specific language)。

必要条件

Twig需要的最低PHP版本为5.2.4。

安装

安装Twig有多种方法。如果你不能确定使用哪一种,那么直接下载压缩包即可。

压缩包安装

从下载页面下载最新的压缩包

解压

将解压出来的文件放置到项目可以访问到的地方。

安装开发版本

安装Subversion或者Git

SVN地址:http://svn.twig-project.org/trunk/, git地址git://github.com/fabpot/Twig.git

使用PEAR包安装

安装PEAR

pearchannel-discoverpear.twig-project.org
pearinstalltwig/Twig (或者pearinstalltwig/Twig-beta)

基础API用法

本节将给出一个Twig的PHP API的简单介绍

使用Twig的第一步是注册它的autoloader:

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

记得用Twig所在路径代替/path/to/lib

注:Twig在类的命名上遵守PEAR的约定,这意味着你可以在自己编写的autoloader中整合对Twig的类的加载

$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
$template = $twig->loadTemplate('Hello {{ name }}!');
$template->display(array('name' => 'Fabien'));

Twig使用加载器(Twig_Loader_String)来定位模板,同时使用环境(Twig_Environment)来储存配置信息。

loadTemplate()方法使用加载器设定的信息来定位和加载模板,同时返回一个模板对象(Twig_Template),该对象可以使用display()方法来进行渲染。

Twig也可以使用文件系统加载器(filesystem loader):

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
'cache' => '/path/to/compilation_cache',
));
$template = $twig->loadTemplate('index.html');

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP设计模式之代理模式的深入解析
Jun 13 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
8个PHP数组面试题
Jun 23 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
PHP发送AT指令实例代码
May 26 PHP
Yii2中datetime类的使用
Dec 17 PHP
Laravel使用RabbitMQ的方法示例
Jun 18 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 #PHP
CodeIgniter自定义控制器MY_Controller用法分析
Jan 20 #PHP
CodeIgniter钩子用法实例详解
Jan 20 #PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 #PHP
CodeIgniter多语言实现方法详解
Jan 20 #PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 #PHP
教你php如何实现验证码
Jan 20 #PHP
You might like
php max_execution_time执行时间问题
2011/07/17 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python如何将多个PDF进行合并
2019/08/13 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
求职信内容考虑哪几点
2013/10/05 职场文书
自荐信范文
2013/12/10 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
2015年妇女工作总结
2015/05/14 职场文书
辩护词格式
2015/05/22 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript