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 相关文章推荐
数据库的日期格式转换
Oct 09 PHP
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
PHP 多进程 解决难题
Jun 22 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
php类常量的使用详解
Jun 08 PHP
PHP修改session_id示例代码
Jan 08 PHP
PHP实现多图片上传类实例
Jul 26 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 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危险函数(disable_functions)
2012/02/23 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
js中if语句的几种优化代码写法
2011/03/12 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
js选项卡的制作方法
2017/01/23 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
js传递数组参数到后台controller的方法
2018/03/29 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
深入解析Python中的urllib2模块
2015/11/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
办公室主任主任岗位责任制
2014/02/11 职场文书
工程师岗位职责规定
2014/02/26 职场文书
幼教求职信
2014/03/12 职场文书
奠基仪式策划方案
2014/05/15 职场文书
普通话演讲稿
2014/09/03 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android