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将向Java靠拢
Oct 09 PHP
实用函数8
Nov 08 PHP
PHP学习之整理字符串
Apr 17 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
fgetcvs在linux的问题
2012/01/15 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
python发送伪造的arp请求
2014/01/09 Python
python监控文件或目录变化
2016/06/07 Python
python获取服务器响应cookie的实例
2018/12/28 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
Django实现网页分页功能
2019/10/31 Python
Python while循环使用else语句代码实例
2020/02/07 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
服装销售人员求职自我评价
2013/09/26 职场文书
元旦晚会感言
2014/03/12 职场文书
银行委托书范本
2014/04/04 职场文书
房产委托公证书样本
2014/04/04 职场文书
股份合作协议书范本
2014/04/14 职场文书
新教师培训心得体会
2014/09/02 职场文书
财会专业大学生求职信
2014/09/26 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
python 标准库原理与用法详解之os.path篇
2021/10/24 Python