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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
php下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Laravel 5.5 异常处理 & 错误日志的解决
Oct 17 PHP
PHP数组基本用法与知识点总结
Jun 02 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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设计模式 Interpreter(解释器模式)
2011/06/26 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
JS如何生成动态列表
2020/09/22 Javascript
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Django app配置多个数据库代码实例
2019/12/17 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
经理管理专业自荐信范文
2013/12/31 职场文书
周年庆典邀请函范文
2014/01/24 职场文书
期终自我鉴定
2014/02/17 职场文书
公民代理授权委托书
2014/09/24 职场文书
离婚协议书范本2014
2014/10/27 职场文书
怎样写离婚协议书
2015/01/26 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
Python序列化模块JSON与Pickle
2022/06/05 Python