两年前的文章(实战给aw_blog插件添加缓存)描述了一个block cache的实例,最近发现代码其实写的有点累赘,后台保存时自动触发刷新缓存并不需要自己去写刷新的动作,系统原生的model继承类mage_core_model_abstract里已经有实现这个动作的代码,只需要简单的配置下变量就能实现。修改后的方案如下(block类的所需修改代码不变)
打开aw_blog_model_post这个文件,在头部定义一个常量,再定义一个变量
结束,就这么简单,打开mage_core_model_abstract文件来看下为什么
从上往下依次看,当model对象保存完毕时会触发cleanmodelcache,cleanmodelcache里去根据getcachetags返回的值去定向刷新tags针对的cache,这样,之前定义的变量$_cachetag的值所对应的cache就被成功刷新了。如果代码看的不是很明白的话,可以把getcachetags的返回值输出来看下
2013-10-27t14:02:59+00:00 debug (7): array
(
[0] => aw_blog
[1] => aw_blog_2
)
数组里的两个元素就是刷新缓存时所指定的cache tag