smarty清理缓存

来源:互联网 发布:刀锋铁骑高6顽强数据 编辑:程序博客网 时间:2024/04/30 06:58

smarty是一个非常优秀的PHP模板引擎,在初期的使用过程中,它的缓存机制最使我乐心。

根据需要,我个人继承并改写了一下smarty,以便自己使用更加方便,下面是自定义的smarty类:

 

smarty的function display($resource_name, $cache_id = null, $compile_id = null)可以根据开发者需要,渲染出对应的缓存文件。

如渲染主页我们经常这么写:display("index.html")

渲染出某条信息可能这么写:display("show.html", 13)

 

同时,smarty也提供了一个清除缓存的function(实质是使缓存文件过期,并非删除缓存文件)

我们发现可以使用:

  1. function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)删除某个具体的模板。如主页,某条信息。
  2. function clear_all_cache($exp_time = null)删除缓存目录下所有所有缓存信息。

然而很多人,也包括我,一开始对怎么清理所有内容页(即show.php?id=1 .... 198 ....)的所有缓存文件产生了疑问。clear_cache()显然不适用,而clear_all_cache呢?似乎后者会把index.php等其它页面的缓存文件也清除。

 

在这里提提大家,看到我对function clear_all_cache()划线部分的标注。 clear_all_cache是把缓存目录下的所有文件清理掉。所以如果我们把show.php?id=1....134...的缓存文件都放在一个show的目录下,在执行clear_all_cache的时候,先设置cache_dir的路径为show,似乎一切就可行了,而事实上也是这样。

 

如我在项目中的一个使用:

渲染模板到show目录下:

 

清理show目录下的缓存:

 

 

 

原创粉丝点击