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在Windows2000下的安装
Oct 09 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
laravel安装和配置教程
Oct 29 PHP
php文件读取方法实例分析
Jun 20 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
php微信开发之音乐回复功能
Jun 14 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开发中常用的字符串操作函数
2011/02/08 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
js资料toString 方法
2007/03/13 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python序列操作之进阶篇
2016/12/08 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
会计专业毕业生自我评价
2013/09/25 职场文书
农场厂长岗位职责
2013/12/28 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
《绝招》教学反思
2016/02/20 职场文书