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正则
Jul 07 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
用php过滤危险html代码的函数
Jul 22 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
PHP使用递归生成文章树
Apr 21 PHP
PHP中的一些常用函数收集
May 26 PHP
PHP最常用的正则表达式
Feb 13 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 27 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
xajax写的留言本
2006/11/25 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
js实现随机点名功能
2020/12/23 Javascript
Python切片用法实例教程
2014/09/08 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python 动态调用函数实例解析
2019/10/21 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python错误的处理方法
2020/06/23 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
Django多个app urls配置代码实例
2020/11/26 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
新电JAVA笔试题目
2014/08/31 面试题
SQL Server面试题
2016/10/17 面试题
应用化学专业职业生涯规划书
2014/01/22 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
各国货币符号大全
2022/02/17 杂记
Python图像处理库PIL详细使用说明
2022/04/06 Python
图神经网络GNN算法
2022/05/11 Python