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传输数据的代码
Nov 13 PHP
php 显示指定路径下的图片
Oct 29 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
深入PHP获取随机数字和字母的方法详解
Jun 06 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
Linux下 php7安装redis的方法
Nov 01 PHP
PHP session垃圾回收机制实例分析
Jun 28 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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
python字符串,数值计算
2016/10/05 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
幼儿园母亲节活动方案
2014/03/10 职场文书
工作分析计划书
2014/04/30 职场文书
团日活动总结模板
2014/06/25 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
精神病医院见习报告
2014/11/03 职场文书