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 相关文章推荐
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
浅析php中三个等号(===)和两个等号(==)的区别
Aug 06 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
PHP常用设计模式之委托设计模式
Feb 13 PHP
php设计模式之委托模式
Feb 13 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
一个非常实用的php文件上传类
Jul 04 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP删除数组中特定元素的两种方法
Feb 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按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
ThinkPHP路由详解
2015/07/27 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
Nest.js 授权验证的方法示例
2021/02/22 Javascript
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
工商管理专业应届生求职信
2013/11/04 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
环保建议书
2014/03/12 职场文书
可口可乐广告词
2014/03/20 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
优秀纪检干部材料
2014/08/27 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
西柏坡导游词
2015/02/05 职场文书
财务管理制度范本
2015/08/04 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python