PHP模板引擎SMARTY

2019-04-07 19:26:43于丽


关于两者的使用办法,本来我想在这里多废话几句的;但是毕竟觉得自己恐怕专门写出两篇教程来也没有 现有的教程受欢迎--在本文的参考资料中有关于PHPLIB Template和FastTemplate的有名教程,如果你自 认还没有对这两种模板或者其中的一种有所认识,建议你先去看看那两篇文章,应该会得到不少有益的模 板应用知识。

(一番鼠标点击以及眼球转动甚至亲自编写测试代码之后,)现在你对两种模板都有了一些了解,也许已 经发现了它们之间的很多相似之处,在下面我就会将这些地方归纳一下。

变量的设置
很明显,{FOO}或者{BAR}的形式在两种模板中都是指定的形式;也就是说,两种模板处理方式 中,模板文件本身的外貌应该可以是一致的(比如都是HTML文件中间含有将要被替换的以{}标识 的变量)。
模板类的初始化(类的构建器)
都需要在构建模板类的时候指定模板文件存在的目录位置。
变量的替换
模板处理中最常用的就是变量替换,两种方式除了方法名不同之外(PHPLIB Template采用 set_var(),而FastTemplate采用assign()),用法几乎也是一致的--可以采用(key, value)的方式, 也可以直接传递一个数组(array(key=>value))。
模板文件的处理
都是采用为每一个模板文件指定一个句柄(handler)的办法,同时句柄也可以作为变量的值替换 另一模板文件中的变量。
解析、输出过程
都是需要调用parse()方法(这个方法名竟然是相同的)将需要输出的模板文件解析后赋值给一个 句柄,然后调用各自输出的方法(PHPLIB Template中是p(),FastTemplate中是FastPrint())输 出该句柄的内容并结束处理。
重复解析的过程
比如从数据库中取出几条记录需要显示而模板文件只有可替换的一行变量的时候,就很需要这样的 功能。两者都具有这样的功能,只是使用时稍稍有些不同而已(PHPLIB Template采用 parse(handler, value, true),而FastTemplate采用parse(handler, .value)在值的前面多加一个 点),应该说PHPLIB Template的方法构造得相对优美一点。
区块解析的过程(或者可以称作动态解析)
想像一下你需要从数据库中取出符合条件的数据并显示在网页中--但是因为条件会不尽相同,你并 不能明确的知道会有多少条数据--这时候如果你又要采用模板,那么区块就是最好的选择。它是在 模板中用特定的符号定义的部分,这一部分可以反复的被解析并添加到(而不是前一次的解析被后 一次覆盖)输出网页中。区块也许就像下面显示的一样(左边是PHPLIB Template采用的区块设 置,而右边则是FastTemplate采用的):



好吧,如果你对以上苍白的文字介绍还是有些摸不着头脑,那么我们就来看看两个详尽的模板处理的例程 吧!(如果你有兴趣对后面的测试代码进行发掘,就会发现其实以下的两个例子都来自那里)
相关文章 大家在看