09月30, 2011

Smarty3性能优化工具

之前的文章中提到在一些复杂的模版页面中,Smarty3有性能问题。经过分析发现,主要是管理文件依赖,自定义函数参数以及一些依赖导致的。目前官方发布的新版本中虽然进行了一些性能优化,但并没有彻底解决这个问题。既然官方还没有解决,在实际项目中如何解决这个问题呢?

结合前端编译平台,可以在开发的时候还是使用Smarty3的这些新特性(毕竟这些新特性给开发和代码维护带来了非常多的便利),然后在上线前编译的时候将这些新特性的书写方式还原。如:将自定义函数还原到代码中。

经过一段时间开发和测试之后,目前已将代码放到github上,https://github.com/welefen/smarty3optimizer。有需要的同学可以了解下

功能列表

1、将自定义函数还原

2、解决include的文件依赖,将include的文件内容直接填进去

使用方式

$file = "Smarty3Optimizer.class.php";

require_once $file;

$path = 'share/template/'; //模版目录

$savepath = 'share.output'; //要保存的目录,如果要修改原文件的话,这里的值保持和$path一致即可。

$instance = Smarty3Optimizer::getInstance();

$instance->left_delimiter = '<&'; //smarty的左定界符

$instance->right_delimiter = '&>'; //smarty的右定界符

$instance->setPathFilter('share'); //这里设置路径的filter方式,可以是个字符串,也可以是个函数

$instance->run($path, $savepath);

@todo

1、将extends和block还原,解除block的文件依赖。

2、完整的预编译

本文链接:http://welefen.com/post/smarty3-optimizer-tools.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。