Свежайшие Пирожки от CakePHP по-русски

Полнейшее руководство CakePHP 1.2 на русском языке, горячие новости и полезные статьи

Встроенных CakePHP cache хелпер очень хорош, но на выходе мы получаем php файлы,и они никогда не будут быстрее чистых HTML файлов. Этот HTML Cache Helper пишет чистый HTML код, это означает, что веб сервер не использует PHP при запросе страницы.
Это хэлпер предназначен для страниц с высоким трафиком и с редко изменяющимся содержимым. Я использую этот хэлпер на http://www.rsstalker.com.

Ограничение

  • На странице не должно быть пользовательских блоков. Ни "привет Федя" ни корзины для покупок.
  • Кеш никогда не истечет. Читай ниже как это обойти.


Вы можете скачать хэлпер тут http://github.com/mcurry/cakephp/tree/master/helpers/html_cache или скопировать код показанный ниже в файл /app/views/helpers/html_cache.php.
Класс Helper: <?php 
/*
 * HTML Cache CakePHP Helper
 * Copyright (c) 2008 Matt Curry
 * www.PseudoCoder.com
 * http://github.com/mcurry/cakephp/tree/master/helpers/html_cache
 * http://www.pseudocoder.com/archives/2008/09/03/cakephp-html-cache-helpercakephp-html-cache-helper/
 *
 * @author      Matt Curry <matt@pseudocoder.com>
 * @license     MIT
 *
 */

class HtmlCacheHelper extends Helper {
  function afterLayout() {
    $view =& ClassRegistry::getObject('view');
    $path = WWW_ROOT . implode(DS, array_filter(explode('/', $this->here)));

    $file = new File($path, true);
    $file->write($view->output);
  }
}
?> 

Удаление просроченного кеша

Для удаления просроченного кеша я использую cron задание, которое удаляет файлы из директории.
find /full/path/to/app/webroot/controller/ -mmin +360 | xargs rm -f 


Оригинал статьи: http://bakery.cakephp.org/articles/view/html-cache-helper
Автор: Matt Curry (mattc)

Все статьи о CakePHP