Smarty到底怎么了?
February 5th, 2009 | by 超群.com | 知识共享署名-非商业性使用-相同方式共享,转载请保留链接。早期的PHP开发者发现把PHP代码和HTML代码混在一起,维护起来非常的费劲,于是Smarty应运而生,将PHP代码和HTML代码分离,把MVC模式中的V(View显示)首先剥离,大大提高了程序的可阅读性和可维护性,于是有一大批的使用者,甚至到现在,如果你去找一份PHP的工作,如果不了解Smarty,估计够呛能拿到offer.
Smarty,这个PHP模板引擎曾经的代名词,最近的日子貌似不太好过,3.0Alpha出来了,不过很多人认为换汤不换药,更有甚者用回光返照来形容,真是英雄末路。
国外甚至有个No Smarty的网站,数典Smarty的种种”罪行”,然后给出了很多种替代方案(基本上是主流的PHP框架),个人觉得不太公平,一个PHP模板引擎和一个完备的MVC框架能有可比性?
一个纯粹的PHP模板引擎在当前MVC当道的年代,难免不那么叫好,而且Smarty开发年代久远,有些设计确实不是太好,Smarty最早开发的时候估计是给页面制作人员(builder)来用的,以至于它的语法都和PHP不兼容,比如foreach语句,在Smarty里面就要用{foreach from=$foo item=bar},可是套模板的工作基本上都是PHP程序员在做,不兼容PHP语法还需要重新去学习Smarty,而两种不同的风格足够让人抓狂。
如果是因为效率的问题放弃使用Smarty,大可不必,很多的网站还在用,比如我们,瓶颈不会出现在Smarty模板上,Smarty会把模板代码编译成PHP代码,下次调用的时候检测如果模板没有改动直接调用编译好的PHP代码,应该和原生的PHP代码差别不太大。而且Smarty自带了很多很有用的函数,比如转义,用起来还是很舒服的。
不过,最近Smarty项目已经从PHP官方移除了,访问http://smarty.php.net,提示Smarty is no longer a subproject of the PHP project, and has subsequently moved to its own domain: www.smarty.net,真是祸不单行。