热门关键字:  PHP  Cisco  seo  网络广告 虚拟主机 中文域名
当前位置 :| 主页>编程开发>PHP>php应用>

ThinkTemplate模板引擎的设计和使用

来源:《PHPer》杂志 作者:流 年 时间:2007-08-14 点击:

在PHP开发的过程中,我们会接触到很多的模板引擎,包括FastTemplate、SmartTemplate、Smarty、tinybutstrong等,通常都是为了满足MVC开发模式的表现层需要,让显示和逻辑可以更好的分离(当然,现在的模板引擎越做越强大,甚至开始介入M)。有了模板引擎,开发者可以专注于程序代码,设计者可以专注于页面的布局和视觉效果,不必再担心要在模板中嵌入各种程序代码。本篇介绍了ThinkPHP内置的一款模板引擎的设计原理和使用方法,以及和其它主流模板引擎的一些区别。
一、ThinkTemplate介绍
ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。ThinkTemplate作为 ThinkPHP框架的一个模板引擎插件提供,也可以独立使用,因为ThinkPHP本身的设计是可以灵活替换模板引擎的。
ThinkTemplate模板引擎的运作过程如图所示:
 

ThinkTemplate的使用方法非常简单,直接创建ThinkTemplate对象后进行模板变量赋值然后进行渲染输出就行,然后就是定义模板标签和输出变量,和Smarty的用法比较类似。
$tpl = new ThinkTemplate();  
$tpl -> assign(‘vo’,$vo);     
$tpl -> display(‘index.htm’);  
如果在ThinkPHP框架中使用的话,无需创建ThinkTemplate对象,Action类会自动创建,只需要赋值并输出就行了。
$this->assign(‘vo’,$vo);  
$this->display();         
Smarty在渲染模板的时候必须指定模板文件名,在ThinkTemplate中如果不指定模板文件名,会按照系统设置的规则进行自动定位,例如,当前模块的某个操作可以定位成为以模块名称为目录
下面的一个操作命名的模板文件。在进行模板变量赋值的时候,可以对任何变量进行赋值,由模板标签来决定输出何种类型的。并且,赋值具有智能化和批量赋值,默认情况下第一个参数是要在模

板中输出的变量名称,而第二个参数是变量的值,但是如果没有指定第二个参数,那么会对第一个参数进行判断,如果是索引数组,则自动进行批量赋值。例如:
$tmpl = array();         
$tmpl[‘var1’] = ‘value1’;  
$tmpl[‘var2’] = ‘value2’;  
$this->assign($tmpl);    
$this->display();          
上面代码会自动赋值两个模板变量var1和var2,用来在模板文件中输出。作为安全性考虑,没有赋值的模板变量是不能用于输出的,但是有些特殊的模板标签可以输出系统的常量和系统变量例外,这个我们后面会提到。


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商连接