发新话题
打印

SmartTemplate分析(2)

SmartTemplate分析(2)

这里我们先讲解ST的运作方式。ST大体上由三部分组成,一个SmartTemplate类,一个是SmartTemplateParser类,还有一个扩展文件夹,下边都是一些扩展文件。

首先我们new一个ST对象并指定它的模板,这时候ST进行上图的1的操作:

$page = new SmartTemplate("./i.html");

然后,我们指定要替换的变量

$page->assign('$time', '时间测试2');

这时候我们的指定的变量信息直接以对象属性的形式存在在于内存中,直到我们调用

$page->output();

这个时候,ST会依次进行如下操作:

1?ST对象创建STP对象
2?STP 打开模板文件,对模板数据进行编译,编译过程是使用正则表达式把模板中的tag替换为PHP的语法,比如把替换为<!– ELSE –>替换为<?phpn} else {n?>;要是用到了扩展标签,加载扩展目录的文件中的函数进行处理。
3 ST将编译后的文件写入编译模版文件夹
4 ST将编译好的模板include进来,运行并输出结果。

当第二次运行时,ST会做如下操作:

1?ST对象检查是否存在编译好的模板
2?如果不存在,和第一次运行时同样操作
3 如果存在,检查模板是否过期(超过我们在配置文件中设定的时间),如果过期,和第一次运行时同样操作
4 ST将编译好的模板include进来,运行并输出结果。
一個偽裝成白癡的天纔!

TOP

发新话题