您现在的位置:首页 > 教案格式 > 正文

变量之间的相关关系 ThinkTemplate模板引擎的设计和使用方法

2017-12-22 17:04 网络整理 教案网

相关关系是指变量之间_统计学相关关系rsp_变量之间的相关关系

在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,用来在模板文件中输出。作为安全性考虑,没有赋值的模板变量是不能用于输出的,但是有些特殊的模板标签可以输出系统的常量和系统变量例外,这个我们后面会提到。

二、主要特性

当然评判模板引擎的优劣并不仅仅在于外表看来的使用方式,更关键的在于内在的功能和效率。ThinkTemplate模板引擎的主要特性包括:

?? 支持XML标签库技术和普通标签定义;

?? 支持混合标签定义;

?? 生成PHP模板缓存文件;

?? 模板文件更新后,自动更新模板缓存;

?? 自动定位当前操作的模板文件,无需指定;

?? 支持编码转换和Content-Type更换;

?? 支持模板变量输出前缀,避免变量名称冲突;

?? 支持特殊模板变量和常量输出;

?? 支持变量组合调节器和格式化功能;

?? 支持标签库扩展模板功能;

概括来看,我们可以从执行速度、模板功能和扩展性三个方面来分析。