FIXME ====== Пакет WEB_CACHE для задач web кеширования ====== Идея web кеширования очень проста: получить динамичный контент, сохранить его в статичный файл и выдавать этот статичный файл при каждом запросе. Пакет включается в LIMB приложение как фильтр ''lmbFullPageCacheFilter'' следующим способом class LimbApplication extends lmbWebApplication { function __construct() { $this->registerFilter(new lmbHandle('limb/web_cache/src/filter/lmbFullPageCacheFilter.class.php')); parent::__construct(); } } При первом запросе, которому соответствует кеширующее правило, пакет сохраняет то что выводится в браузер и в следующий раз напрямую выдаст эти данные, __причём остальные фильтры в приложении не сработают__. Благодаря этому скорость работы приложения заметно повышается. Однако надо иметь ввиду, что вместе с системой кеша возникает проблема его обновления. Пакет WEB_CACHE имеет несколько методов, которые удобно использовать при изменении данных в административной панели. Например где то в контроллере можно написать что-то вроде function _onAfterSave() { $cache_writer = new lmbFullPageCacheWriter( lmb_env_get('LIMB_VAR_DIR') . '/fpcache/'); $cache_writer->flushAll(); } ===== Настройки правил кеширования ===== Для настроек путей по умолчанию используется full_page_cache.ini, который имеет следующие настройки ==== path_regex ==== Регулярное выражение запроса. Для проверки подставляется путь из запроса. То есть при таком запросе ''http://example.com/some/path?arg=1'' будет проверяться строка ''/some/path'' Пример правила для кеширования главной страницы [main_page] path_regex = ~^/$~ type = allow ==== type ==== Указывает кешировать ''allow'' или нет ''deny'' данный запрос Пример правила для запрета кеширования [main_page] path_regex = ~^/document/xml$~ type = deny ==== request,get,post ==== С помощью этих опций задаются параметры запроса для соответствия правилу. Значение "*" означает как минимум один параметр в запросе, значение "!" означает ни одного параметра. Данное правило означает, что кеширование сработает для пути ''/document'' с любым GET, POST и COOKIE(?) параметром. Однако оно не сработает без параметров в запросе [main_page] path_regex = ~^/document$~ type = allow request = * Такое правило будет кешировать страницу, только если нет POST запроса [main_page] path_regex = ~^/contacts$~ type = allow post = ! Также можно указать названия параметров [main_page] path_regex = ~^/search$~ type = deny get[q] = * Для совсем точного соответствия можно указать ещё и значения параметров [main_page] path_regex = ~^/page$~ type = allow get[foo] = 1 get[bar] = 2 ==== path_offset ==== Смещение в пути, начиная с которого проверяется регулярное выражение из ''path_regex'' Правило сработает для ''http://example.com/document/map'' [sitemap] path_offset = /document path_regex = ~^/map~ type = allow