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正则的Unknown Modifier错误解决方法
Mar 02 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP 超级全局变量相关总结
Jun 30 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
js设置默认时间跨度过程详解
2019/07/17 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
优秀党支部事迹材料
2014/01/14 职场文书
教师档案管理制度
2014/01/23 职场文书
四查四看整改措施
2014/09/19 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
离婚代理词范文
2015/05/23 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
Pandas自定义选项option设置
2021/07/25 Python
Python装饰器详细介绍
2022/03/25 Python