PHPLIB Template和FastTemplate的比较
的)将需要输出的模板文件解析后赋值给一个句柄,然后调用各自输出的方法(phplib template中是p(),fasttemplate中是fastprint())输出该句柄的内容并结束处理。
重复解析的过程 比如从数据库中取出几条记录需要显示而模板文件只有可替换的一行变量的时候,就很需要这样的功能。两者都具有这样的功能,只是使用时稍稍有些不同而已(phplib template采用parse(handler, value, true),而fasttemplate采用parse(handler, .value)在值的前面多加一个点),应该说phplib template的方法构造得相对优美一点。 区块解析的过程(或者可以称作动态解析) 想像一下你需要从数据库中取出符合条件的数据并显示在网页中--但是因为条件会不尽相同,你并不能明确的知道会有多少条数据--这时候如果你又要采用模板,那么区块就是最好的选择。它是在模板中用特定的符号定义的部分,这一部分可以反复的被解析并添加到(而不是前一次的解析被后一次覆盖)输出网页中。区块也许就像下面显示的一样(左边是phplib template采用的区块设置,而右边则是fasttemplate采用的): 好吧,如果你对以上苍白的文字介绍还是有些摸不着头脑,那么我们就来看看两个详尽的模板处理的例程吧!(如果你有兴趣对后面的测试代码进行发掘,就会发现其实以下的两个例子都来自那里) 怎么样,是不是感觉几乎是一致的?下面是区块解析的例子,你也会发现同样的效果: 我们的测试目标和结果 结束了对phplib template和fasttemplate的了解,应该可以进入本文的正题了--在应用环境中当然应该选择易于使用同时速度理想的部件构建系统,那么对于这样的两种类似技术,进行评测非常有必要。评测应该是由两部分组成:技术的使用难度和速度的快慢程度--前者是评论的部分,而后者是测试的部分。对于前者,我们主要针对两个类提供的api进行评论;对于后者,我们会让测试的数据来说话,当然这中间免不了需要编写一些简单的测试代码。 回合一:技术的易用性 这一回合主要是探讨phplib template和fasttemplate提供的api的使用情况。应该说,前者提供的api更符合php的一些常见编码惯例(特别是当你的项目中采用了phplib的其他类时,这样的规范性会对整个项目有好的影响);而后者的一些方法名总觉得有些别扭(希望你不要觉得这只是我的狭隘看法,比如fastprint()等等),同时方法的参数也不是非常"地道",这一点你也可以从刚才的代码看出来。 另外一点需要指出的是,对于模板区块的解析,fasttemplate直到最近的版本才开始支持。也就是说,如果你采用了之前的版本,在处理诸如数据库中记录的输出等内容时,不得不把这块内容独立存储在某处,然后在模板分析处理时附加上这个文件--真是一件让人难受的事情,尤其是对网页设计人员而言。 当然还有一点需要考察--那就是对于php版本的支持。phplib产生在php3的时代,这一点和fasttemplate差不多;但是根据我们的应用,phplib在现在的php4环境下运行相当好,而fasttemplate的网页上则显示了一些信息表明对于php4也许它还有一些bug存在。 好了,讲了这么多(也许你会觉得都是fasttemplate的坏话),这个回合的胜利者很明显:phplib template,尤其是你同时在使用phplib的其他类时,这样的技术易用性更加明显(你将不会对这些出自同一个开发小组的api感到陌生)。 回合二:处理速度 也许这才是很多人最关注的部分--在这个回合中,我们会采用两种模板处理的方式:一种是常规的分析、替换,另一种是对区块的解析、替换--同时这样的两种方式也是在实际系统中应用最多的:前者是一般的页面处理,后者是关于数据库内容的输出处理。同时,由于两种模板类采用的模板文件的格式基本相同,使得我们可以提供几乎一致的模板文件分别供两种模板解 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |