|
PHP模板比较篇总结(1) 不同的PHP应用应该用什么PHP模版?PHP模版之间又有何不同?
以下想法是对这次活动的总结,并不只属于PHPChina的观点,而是属于所有PHPer的想法:
“模板应该根据项目的需求具体问题具体问题,选择哪个模板或者自己写模板类。根据实际的需求来做,不是死钻牛角尖的用某一个模板类的。”[来自Deepseath]“我觉得模板就是一个html外壳而已,分离了程序逻辑和表现,使程序本身更加可重用。在极少更改代码的情况下可以有不同方式的表现输出。liumingl 兄说IPB的模板时加了引号,因为它不是真正的模板。为什么它不是真正的模板?它就是真正的模板!这种情况在ASP.NET当中非常普遍。模板就是一种抽象,模板就是OO思想的一种实现。”[来自Ben]
PHPLIB
“我一直是在用的PHPLIB的模板。很简单,只提供set_var变量的转换,block块的转换。几乎没有任何控制逻辑可以在模板上直接使用,因此必须完全靠程序来控制。没有什么标签的输出。在对某些应用的时候还是比较麻烦,不过,可以靠一些特殊的办法来处理。如嵌套block的输出,子模板页面的输出,例如select列表的各种HTML对象的输出等。”[来自seraph]
smarty
“SMARTY的手册感觉功能很强大,可以在模板中控制N多逻辑问题,在模板中甚至可以自动截取字符.,可以用IF判断....现在还很不习惯,用得最多的还是 SMARTY最基本的那个几个功能,和PHPLIB很相似,,不过感觉到后来应该会比PHPLIB强不少....不过体积比较大..300多K呢而且感觉缓存也没有加快多少速度,..不过可以减少数据库的负担”[来自Phzzy]。但是“SMARTY有个问题是过多大的依赖于模板,很多原本程序的控制放到模板里面了,这样虽然在没中程度上简化了程序的复杂性,但对于美工和程序大的分离效果不好,第一:对美工人员要求高了,美工要熟悉smarty模板的标签。第二:美工的后续修改工作比较麻烦。同时也一定程度影响了程序的速度,当然SMARTY考虑了这点,所以引入了缓存,这样的确效果在编译后运行效果比phplib还快,几乎可以和同等过程语言相比。”[来自feifengxlq]
“smarty本身支持的缓存还是可以弥补“编译速度慢”的缺陷的”[来自leeyupeng]“对于SMARTY,我一直有个疑惑,为什么都倾向于吧原本程序应该做的事情加入到模板呢?例如SMARTY中有if,固然这样是加快了开发进度,但是是否真的有这个必要呢?”[来自夕日]“我在SMARTY中死都不用IF或别的逻辑控制的语句...当然除开循环拉。”[来自Phzzy]“其实把if放到程序里去实现也就顶多两行代码让模板去做这些工作,反而加大的程序的负担而程序员并没有减轻工作量。”[来自夕日]
“个人认为Smarty的吸引我的是,强大的扩展性,以及跟PHP的紧密结合,可以很方便的用smarty解决以前用Lib时遇到的一些问题.比如对字符串的截取,转换等,Smarty提供自扩展,结合PHP达到在Smarty中实现很多以前必须要在PHP中才能实现的而琐碎的东西。还有就是好多人都喜欢的Smarty的缓存机制,我也喜欢.具体也不一一去说了。有些人说Smarty的语法复杂,其实那只是一种说辞吧了,可能个人用Lib,FastTemplate等用习惯了,真正你用了Smarty还是会觉得其语法还是简单,明了,而且功能真的是非常强大,Lib和FastTemplate至少在功能的完备程度上是无法和Smarty比拟的。”[来自leslee]
IPB
“最近一直在看IPB的程序,在感觉到它程序本身功能的强大以外,就是它的模板实现给了我很深的印象。IPB程序有2套模板,一套是存储在数据库中,还有一套是在cache中,如果管理员不使用安全模式的话则使用cache中的文件“模板”,否则直接从数据库中读取“模板”。为什么给“模板”加引号呢?因为cache文件里面不是真正的模板,而是类。比如说显示论坛分类的模板、显示讨论区的模板、显示用户状态的模板等等。都是类中的一个个方法。最后再“拼接”起来就OK了。我感觉这种方法比较灵活,可以随心所欲的安排各个部分的位置。但是一般这样的模板在视觉上受限制很大,因此你可能发现基于IPB的程序很少有很漂亮的界面。”IPB这个程序现在很容易下载,你可以去www.ziyuan8.com下载![来自liumingl]
总结
“平时用下来,感觉模板最有用的是这么几点:
1、变量的替换,这个是最基本功能了,包括单个变量、循环变量和整个区块等的替换
2、变量转换,比如字符串截取长度、小写变大写等,这些最好可以在模板里面控制
3、显示判断,模板中可以使用if、else等语句方便显示的控制
4、编译和缓存,这个可以大大加快执行速度
做到这些,模板本身的程序就越简单越好了”[来自徐风]
“模板这东西,其实最重要的是适合自己的项目需求,而不是适合自己的习惯.比如一个企业的宣传网站,访问量不大,更新量也不大,用什么都一样,甚至不用,直接PHP+HTML写可能速度最快.也没什么不可.但是如果是一个新闻系统,或者是内容发布系统.两者这样,就非常有必要用到模板这一技术.因为他们都有一个共通的地方,就是有一类页面要用到同一个样式的页面设计.而根据实际情况,比如访问量的大小,项目的紧急程度以及程序员对于模板技术的熟练程度,选择最适合项目的模板技术..这才是首选”[来自leslee]
|