CakePHP 1.3: кэш включен. Торт не очищает кеш при публикации статьи - PullRequest
0 голосов
/ 02 апреля 2012

Я использую CakePHP 1.3 и кеширую большинство своих элементов.Из того, что я прочитал, Cake должен очистить кеш при создании нового сообщения.Тем не менее, он не работает для меня автоматически?

Я обычно использую плагин для очистки кэша, или я делаю это вручную через FTP.

У кого-нибудь есть предложение для меня, которое сделает мою жизньлегче, если бы торт выполнил это для меня АВТОМАТИЧЕСКИ?

спасибо,

1 Ответ

0 голосов
/ 04 апреля 2012

Я считаю, что CakePHP очищает кеш следующим образом:

  1. Если есть элемент т.е. articles_most_viewed.ctp и вызывается из articles index.ctp файла, тогда Cake очистит соответствующий элемент во время действия добавления, редактирования, удаления.
  2. Однако, если есть элемент т.е. frontpage_lastest_articles.ctp и он вызывается только в pages/display.ctp файле (титульная страница), тогда CakePHP не очистит этот элемент, так как он не вызывается из затронутой / измененной модели / вида, в данном случае articles модель / контроллер / вид.

Я не понимаю, как лучше подойти к этому вопросу, если есть лучший способ. Тем не менее, мое быстрое решение состоит в том, чтобы вызвать clearCache() в моих admin_add.ctp, admin_edit.ctp и admin_delete.ctp файлах как таковых:

...
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'));
        }
    }
}

Возможно, есть лучший способ справиться с этим, но сейчас это мое решение. Я был бы рад узнать, есть ли лучшее / автоматическое решение.

...