2012-04-02 65 views
0

我正在使用CakePHP 1.3并缓存大部分元素。从我读到的,Cake应该在创建新帖子时清除缓存。但是,它不会自动为我工作?CakePHP 1.3:缓存已启用。在文章中没有清除缓存的蛋糕

我通常使用插件清除缓存,或者我通过FTP手动执行此操作。

任何人都有我的建议,让我的生活更轻松通过蛋糕执行此操作对我来说AUTOMAGICALLY?

感谢,

+0

你如何缓存?只有http://book.cakephp.org/2.0/en/core-libraries/helpers/cache.html这会自动清除缓存,并且只有满足本页所描述的条件。 – burzum 2012-04-02 14:21:00

+0

我刚刚注意到文章视图上缓存的元素正在刷新。但是,我有一些元素引用了不会刷新的FrontPage(页面控制器)中的文章控制器。我该如何去做呢? – 2012-04-04 00:34:14

回答

0

相信CakePHP的清除以下方式缓存:

  1. 如果有一个元素,即。 articles_most_viewed.ctp并从articles index.ctp文件中调用它,然后Cake将在添加,编辑,删除操作期间清除相应的元素。
  2. 但是,如果有一个元素,即。 frontpage_lastest_articles.ctp,它只在pages/display.ctp文件(frontpage)中调用,那么CakePHP将不会清除该元素,因为它并未在受影响/更改的模型/视图内调用,在此例中为articles model/controller/view。

我还没弄清楚如何更好地处理这个问题,如果有更好的方法。然而,我的速战速决是叫我admin_add.ctpadmin_edit.ctpadmin_delete.ctp文件clearCache()这样:

... 
function admin_add(){ 
    ... 
    if (!empty($this->data)) { 
     if ($this->Article->save($this->data)) { 
      // I call the following function to clear my entire Cache directory 
      // after this action is successfully processed 
      // =========================================== 
      clearCache(); 
      // =========================================== 
      $this->Session->setFlash('Your post has been saved.'); 
      $this->redirect(array('action' => 'index')); 
     } 
    } 
} 

有可能是一个更好的方式来处理这个问题,但是这是我的解决方案现在。我很乐意知道是否有更好的/ automagic解决方案。