Когда вы переходиде по ссылке, Cake сначала проверяет нет ли запрашиваемой ссылки в кеше. Если есть, Cake пропускает запрос и возвращает уже отреднеренную, кешированную версию страницы. Если страницы нет в кеше, Cake ведет себя обычно.
Если вы активируете возможность кеширования, Cake будет хранить исходящие данные из обычных операций в кеше для ваших пользователей. В следующий раз, когда запрошена страница Cake возьмет ее из кеша. Четко, да? Давайте копнем глубже, чтобы глянуть как это работет.
/app/config/core.php (частично)<?
define
('CACHE_CHECK', true);?>
Эта строка говорит Cake'у, что вы хотите включить кеширование.
В контроллере для отображений, которые вы хотите кешировать добавьте хелпер Cache в масив хелперов:
<? var $helpers = array('Cache'); ?>
Затем вам нужно определить что вы хотите кешировать.
Скажем у нас есть Products Controller с какими-то элементами, которые мы хотим кешировать. Следующие примеры покажут как использовать $cacheAction для того, чтобы дать команду Cake'у кешировать определенные части действий контроллера.
<?//Кеш самых часто-посещаемых страниц за 6 часов:var $cacheAction = array(
'view/23/' => 21600,
'view/48/' => 21600);//Кешировать целое действие. В это случае список продуктов recalled, на один день:var $cacheAction = array('recalled/' => 86400);//Если мы хотим, то можем кешировать каждое действие, установив это в строку://в которой strtotime() определяет время кеширования
var $cacheAction = "1 hour";//вы также можете определять кеширование в действиях, используя $this->cacheAction = array()...?>
<cake:nocache> </cake:nocache>.
<cake:nocache> example<h1> New Products! </h1>
<cake:nocache>
<ul>
<?php foreach($newProducts as $product): ?>
<li>$product['name']</li><?endforeach;?>
</ul>
</cake:nocache>
Но могут быть случаи когда вы хотите очистить определенные файлы из кеша. Сделать это можно функцией clearCache, которая доступна глобально:
<cake:nocache> example<?
//Удаляет все кешированные страницы с именем controller.clearCache('controller'); //Удаляет все кешированные станицы с именем controller_action.clearCache('controller_action/'); //Удаляет все кешированные страницы с именем controller_action_params. //Заметка: у вас может быть несколько параметров
clearCache('controller_action_params'); //Вы также можете использовать масив, чтобы удалить несколько кешей за раз.clearCache(array('controller_action_params','controller2_action_params)); ?>