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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
php 一元分词算法
Nov 30 PHP
PHP学习笔记之数组篇
Jun 28 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP实现时间轴函数代码
Oct 08 PHP
php二维码生成
Oct 19 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
php实现分页显示
2015/11/03 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
JavaScript 常用函数
2009/12/30 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python已协程方式处理任务实现过程
2019/12/27 Python
python的json包位置及用法总结
2020/06/21 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
初中数学教学反思
2014/01/16 职场文书
单位消防安全责任书
2014/07/23 职场文书
奖励通知
2015/04/22 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
培训计划通知
2015/07/15 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript