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 和 HTML
Oct 09 PHP
php 在线打包_支持子目录
Jun 28 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php+mysql删除指定编号员工信息的方法
Jan 14 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 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数据库抽象层 PDO
2011/05/07 PHP
php加密解密字符串示例
2016/10/13 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
python+selenium+autoit实现文件上传功能
2017/08/23 Python
在Python中表示一个对象的方法
2019/06/25 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python 如何实现遗传算法
2020/09/22 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
软件测试工程师结构化面试题库
2016/11/23 面试题
公司清洁工岗位职责
2013/12/14 职场文书
优秀大学生自荐信
2014/06/09 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书