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 文章调用类代码
Aug 11 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
PHP微信支付开发实例
Jun 22 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP的自定义模板引擎
Mar 24 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
浅谈php处理后端&接口访问超时的解决方法
2016/10/29 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
JS FormData上传文件的设置方法
2017/07/05 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
详解如何运行vue项目
2019/04/15 Javascript
Python交换变量
2008/09/06 Python
python多线程http下载实现示例
2013/12/30 Python
Python实现子类调用父类的方法
2014/11/10 Python
python语言使用技巧分享
2016/05/31 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
酒店管理专业毕业生推荐信
2013/11/10 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
培训演讲稿范文
2014/01/12 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
情况说明书格式范文
2014/05/06 职场文书
房地产广告策划方案
2014/05/15 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2014年少先队工作总结
2014/12/03 职场文书
面试通知短信
2015/04/20 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL