ZF: Cache с frontend'ом Page не получается заюзать
В одном проекте сейчас нужно прикрутить глобальное кеширование, и для этих целей мне Page очень подходит, т.к. при помощи параметра regexps можно установить урлы которые кешироваться не будут.
Вот пример из туториала:
Код:
require_once 'Zend/Cache.php';
$frontendOptions = array(
'lifetime' => 7200,
'debug_header' => true, // для отладки
'regexps' => array(
'^/$' => array('cache' => true), // кэширование всего IndexController;
'^/index/' => array('cache' => true), // кэширование всего IndexController;
'^/article/' => array('cache' => false), // не кэшируем ArticleController...
'^/article/view/' => array( // ...но кэшируем действие "view"
'cache' => true, // контроллера ArticleController;
'cache_with_post_variables' => true, // кэшируем, даже если есть переменные $_POST
'make_id_with_post_variables' => true, // (но кэш будет зависеть от массива $_POST)
)
)
);
$backendOptions = array(
'cache_dir' => '/tmp/'
);
// получение объекта Zend_Cache_Frontend_Page
$cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);
$cache->start();
$frontendOptions = array(
'lifetime' => 7200,
'debug_header' => true, // для отладки
'regexps' => array(
'^/$' => array('cache' => true), // кэширование всего IndexController;
'^/index/' => array('cache' => true), // кэширование всего IndexController;
'^/article/' => array('cache' => false), // не кэшируем ArticleController...
'^/article/view/' => array( // ...но кэшируем действие "view"
'cache' => true, // контроллера ArticleController;
'cache_with_post_variables' => true, // кэшируем, даже если есть переменные $_POST
'make_id_with_post_variables' => true, // (но кэш будет зависеть от массива $_POST)
)
)
);
$backendOptions = array(
'cache_dir' => '/tmp/'
);
// получение объекта Zend_Cache_Frontend_Page
$cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);
$cache->start();
У меня не работает (папочка tmp пустая)
Адаптированный под меня:
Код:
include_once 'Zend/Cache.php';
$frontendOptions = array(
'lifetime' => 7200,
'debug_header' => true, // для отладки
'regexps' => array(
'^(.+)$' => array('cache' => true), // кэширование всего IndexController;)
'^/adminpanel(.+)$'=>array('cache'=>true)
)
);
$backendOptions = array(
'cache_dir' => './application/cache/'
);
$frontendOptions = array(
'lifetime' => 7200,
'debug_header' => true, // для отладки
'regexps' => array(
'^(.+)$' => array('cache' => true), // кэширование всего IndexController;)
'^/adminpanel(.+)$'=>array('cache'=>true)
)
);
$backendOptions = array(
'cache_dir' => './application/cache/'
);
Если вместо Page использовать Output то всё нормально работает, но как избежать тогда кеширования админки? Ведь подключение роутеров идёт уже ниже.
В общем запутался я, выручайте комрады ;(
Так, что могу дать только 2 совета
1. Используй не только E_ALL, но и E_STRICT, т.к. многие ошибки попадают только туда
2. Используй ТОЛЬКО английский мануал, т.к. так русский для многих компонентов не обновлялся с версии 0.3 (можешь посмотреть в SMTP авторизацию и по логам посмотреть когда она появилася).
3. У ZF есть хорошее рускоязычное комьюнити, найти его можно в лентах гугла. Задай вопрос лучше там, быстрее ответят.