2011-08-03 26 views
1

目前我正在放置一個基於ZF的CMS,並且目前正在緩存我的Zend_Navigation對象以及renderMenu()呈現的HTML。所以在目前,只要在菜單的改變,我必須調用的相關行動以下行:放置緩存清除代碼的位置

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

我有一個siteController處理更改菜單結構,和的PageController處理添加/編輯/刪除單獨的頁面,所以代碼在這兩個控制器中的操作中都會使用。

我很明顯想把這個代碼放在一個我可以調用的方法中,但是哪裏會是最適合的地方?行動助手? siteController的父類& pageController?我應該結合控制器嗎?或者是其他東西?

回答

1

服務怎麼樣? Application_Service_Navigation(或您正在使用的任何appnamespace)存儲在application/services/Navigation.php中,在這兩個CMS控制器中實現一個表示CRUD操作的接口。然後在內部,這些方法可以像您所描述的那樣使用緩存。控制器調用服務方法並且不知道緩存操作。

+0

服務是否比任何方式的行動助手都好? – ChrisA