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 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
帝国cms目录结构分享
Jul 06 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 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实现多条件查询实例代码
2010/07/17 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
传智播客学习之java 反射
2009/11/22 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python matlibplot绘制3D图形
2018/07/02 Python
Python切片操作深入详解
2018/07/27 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python程序输出无内容的解决方式
2020/04/09 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
十佳护士先进事迹
2014/05/08 职场文书
投资意向协议书
2015/01/29 职场文书
安全生产奖惩制度
2015/08/06 职场文书
初一数学教学反思
2016/02/17 职场文书