快速业务通道

PHPLIB Template和FastTemplate的比较

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

php工程中的模板应用,是进行中型乃至大型项目中建议采用的处理表现层的好办法。但是具体到模板的实施,采用何种现有的模板技术却需要进行一番比较。

php世界中比较受关注的模板处理有phplib template和fasttemplate两种,我们对技术的易用性和速度进行了评测--想知道结果吗?

事情的起因:你用过fasttemplate吗?

对于php工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"前辈先哲"讨论过了。就项目实施而言,在一些中型甚至大型的项目中,有效的将html(还有其他文本形式的表现层)和php代码分开,不仅在开发阶段可以分别提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大的便利。

但是--本文的目的不是讨论模板的优缺点,也不是作为指导性的教程讲授如何在php项目中使用模板,而是以应用的视角比较两种php世界中最为流行的模板处理方式(其实只不过是两种模板类):phplib template和fasttemplate。

其实我一直都在"安静"的使用着phplib template--很稳定而且看上去速度也不错,以至于我并不想再去不安的寻找可能更好的替代品--虽然我也知道这个地球上还有fasttemplate这样的东西(而且还在perl的世界中大名鼎鼎)。直到有一天,有一个同事问我:"不知道fasttemplate怎么样?为什么我们不试试fasttemplate呢?"

"好吧,就让我们试试!"不过作为一个稳妥的方法,在任何新的模式或者方法引入项目之前,最好能够更加全面的了解它,以及找到一个或者几个足够说服自己和同事去采用它的理由--对于fasttemplate也不例外。

主角出场:了解phplib template以及fasttemplate

前面已经说过,我已经使用phplib有一段时间了--我想屏幕前的你也许和我一样,也对这个优秀的工具类库印象很深吧!同样,当我开始寻求模板的解决办法时,很自然的就会在最接近身边的工具箱里搜寻,于是我找到了phplib中的template类。在最初的很快浏览完它提供的api之后(当然还得感谢phplib详尽的文档),我就开始了使用它的历程--直到现在。

而fasttemplate似乎名气更响亮一些,在其发迹的perl世界中自然是这样,在php世界中似乎也是,单单从这一点上就足够让人相信它的能力了。

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

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

变量的设置

很明显,{foo}或者{bar}的形式在两种模板中都是指定的形式;也就是说,两种模板处理方式中,模板文件本身的外貌应该可以是一致的(比如都是html文件中间含有将要被替换的以{}标识的变量)。

模板类的初始化(类的构建器)

都需要在构建模板类的时候指定模板文件存在的目录位置。

变量的替换

模板处理中最常用的就是变量替换,两种方式除了方法名不同之外(phplib template采用set_var(),而fasttemplate采用assign()),用法几乎也是一致的--可以采用(key, value)的方式,也可以直接传递一个数组(array(key=>value))。

模板文件的处理

都是采用为每一个模板文件指定一个句柄(handler)的办法,同时句柄也可以作为变量的值替换另一模板文件中的变量。

解析、输出过程

都是需要调用parse()方法(这个方法名竟然是相同

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号