Content Entry

试用 Smarty Template

Published: 2006-05-31 Categories: SmartKit Tags: Smarty Template

作为 PHP 官方社区的模板引擎,效率应该不差。

一直以来我使用 phplib template 作为模板引擎,记得当初看了一篇它和Fast template的评测,结果phplib template大获全胜,从此我和phplib template故事便开始了...
它们的测试数据: http://www.phpe.net/articles/256.shtml

phplib tpl相当优秀,稳定,高效。它是php3时代的产物,发展到现在已经少有bug,好话一箩筐...但是我计划采用另外的引擎 Smarty ,效率更高。

Smarty作为PHP社区官方的东西,采用一种预编译的机制,模板文件在第一次载入引擎时,被编译为半成品,模板被处理为html和php混合的php文件并以文件形式存放在一定目录,这时候先前模板中的所有活动元素都被替换成了实际的php变量; 当模板第二次载入时直接调用这个经过编译的模板文件,自然它的效率优于传统意义上的模板。

我第一次看见它时曾担心它庞大的身躯会拖累它的速度,在 Smarty-2.6.13.tar.gz 这个最新版本中 Smarty.class.php(62kb) Smarty_Compiler.class.php(90kb) 这两个核心类文件的体积已经吓人了,而 phplib-7.4a.tar.gz 中 template.inc(34kb) ,担心Smarty的载入速度影响,我在IBM的developerWorks中找到一篇测评文章,颇有眼前一亮的感觉。
测试数据: http://www-128.ibm.com/developerworks/cn/linux/l-smart/index.html

自己也做了一个简单测试,用phplib template 和Smarty同时处理一个33kb大小的模板文件,125个变量数目,在我本机平均情况下,phplib template 耗时 19-21ms ,Smarty第一次耗时100-200ms,以后就一直保持在10ms - 11ms,Smarty表现不错。

开始考虑给SmartKit换模板引擎了(注:Smarty template 和 SmartKit 是两个不同物体!),计划中ing,具体在哪个版本加就难说了。

今天是端午节哈。

comments loading