在何处放置缓存清除代码



我正在把一个基于ZF的CMS放在一起,目前我正在缓存我的Zend_Navigation对象,以及renderMenu()渲染的html。因此,目前,每当菜单更改时,我都必须在相关操作中调用以下行:

        $cache = Zend_Registry::get("cache");
        $cache->remove("menu");
        $frontcache = Zend_Registry::get("frontcache");
        $frontcache->remove("menuhtml");

我有一个siteController来处理菜单结构的更改,一个pageController来处理单个页面的添加/编辑/删除,所以代码在这两个控制器的操作中使用。

我显然想把这段代码在一个方法我可以调用,但在哪里将是最合适的地方?动作帮助器?sitcontroller &pageController吗?我应该把控制器组合起来吗?还是别的什么?

您是否考虑过使用Action Helper (http://framework.zend.com/manual/en/zend.controller.actionhelpers.html)?这将给你一个独立于控制器的地方,每个控制器仍然可以调用。

服务怎么样?Application_Service_Navigation(或您正在使用的任何appnamespace)存储在application/services/Navigation.php中,实现表示这两个CMS控制器中的CRUD操作的接口。然后,这些方法可以在内部使用您所描述的缓存。控制器调用服务方法,并且不知道缓存操作

最新更新