使用教程:http://bbs.cmsmb.com/demos/php/supertpl_demo/study/
Supertpl是vant4.01的升级版
无论在速度上还是功能上与其它模板相比,都有一个飞跃。
Supertpl的最大特色在于:模板在编译后将生成一个类文件,使得程序与模板的交互成为可能。它除了支持传统的变最替换以外,还独创性的支持模板控件,还可以自由制作扩展控件。另外还增加了缓存与自动生成html文件。
它有五大特色:
1、易用性。
比如:一个生成下拉选单的控件
模板中只需写下:{:select id="select_1"}
而其它属性则可以在程序中设置
如:
$tpl->all['select_1']->dataSrc = 100; (设置数据源)
$tpl->all['select_1']->selectedValue = 2; (设置被选中的值)
$tpl->all['select_1']->;
2、灵活性:
所有控件的属性也可以写在模板中
如:{:select dataSrc=100 selectedValue=2 }
以上1、2的输出结果是相同的
3、高速。
Supertpl是编译型模板,在第一次运行时,将生成一个PHP类文件,以后则直接使用这个文件,对字串的输出则采用echo实时输出,因此速度飞快。
经测试,它的速度比smarty快了将近一倍(后面有测试程序下载)
4、超强扩展性:
你不仅可以自定义函数作为变量的调节器,还可以任意自定义扩展控件,将你常用的输出包装成一个类,该类既可以在模板中作为控件使用,又可以在程序中使用
后面将以一个日历控件讲述如何制作扩展控件
5、XML文件显示:
xmlReader控件用来读取并显示XML文件,不过有待完善。
●
功能列表:
1、Supertpl是编译型模板,在第一次运行时,将生成一个PHP类文件,以后则直接使用这个文件,对字串的输出则采用echo实时输出,因此速度飞快。
2、增加缓存功能,进一步提高速度。
3、可自动生成html文件,也可调用createHtml()方法手动生成。
4、可自由扩展的变量调节器,让输出形式随心所欲。
5、模板控件的支持,使程序与模板的交互成为可能。(至于什么是模板控件以及有哪些模板控件,将在下面的内容中详细讲述)
6、模板控件也可以自由扩展,功能强大,使用简单。
7、无限循环嵌套,以遍历数组,并可方便的将数据多列显示。
8、模板可无限嵌套,任意组织页面结构。
9、if,else if,else语句支持。
10、安全模式。在安全模式下,模板不能是PHP文件。但可设置安全文件夹,只有位于安全文件夹下的PHP文件才能作为模板。
11、可直接使用PHP文件作模板,用PHP语言作为模板语言,此时则无需编译,使用简单速度快,也实现了逻辑与显示的分离。
12、可直接执行output()输出内容,也可执行getContent()取得内容,以供操作。
13、模板语言的写法比较松散。但对于控件的名称与属性是区分大小写的。
● 在模板语言方面与vant4.01的区别:
1、默认的左标记为:"{:",(为了与javascript区分),右标记不变。
2、输出变最改为"{:=varname}"。(加了一个等号)
3、循环标记由for改为repeater,循环只支持遍历数组,取消了对数字的循环和步长等。
4、对循环后的结果取值:取得键名由loop1.item改为loop1->key,取得值由loop1.value改为loop1->val。
5、数据源由data改为dataSrc。
6、对于字串,必须使用引号。比如:{:repeater name="loop1" dataSrc=list_data},其中loop1是字串,用了引号,而list_data是程序端设置的变量,因此不必用引号
7、变量调节器由如{:var|date:Y-m-d}改为如{:=var.date("Y-m-d")}
●
重要提示:
1、parse()应该在程序开始时执行(尤其是有模板控件时必须如此),要输出则调用output();
2、执行parse()之前,如果有嵌套模板,必须先指明被嵌套模板的路径
●
文件组成:
1、Supertpl.inc.php 主体文件;
2、SupertplCreate.inc.php 建立编译文件的类文件
3、SupertplConfig.inc.php 控件名与变量调节器名注册表
4、SupertplPlugins.inc.php 变量调节器函数集
5、HtmlElement.inc.php HTML控件集
6、PhpObject.inc.php 通用对象操作文件