Zend Cache не получает элементы кеша через некоторое время - PullRequest
0 голосов
/ 13 мая 2010

Я использую Zend Cache с кэшированием страниц, но кажется, что через некоторое время кеш пропускает. Какое-то время все в порядке, но я возвращаюсь завтра и попадаю на страницу, она не получает содержимое из кэша. почему?

$frontendOptions = array(
    'content_type_memorization' => true, // This remembers the headers, needed for images
   'lifetime' => NULL,                   // cache lifetime forever
   'automatic_serialization' => true,
   'automatic_cleaning_factor' => 0
);

$myPageCache = new Zend_Cache_Frontend_Page(array(
    'debug_header' => false,
    'automatic_cleaning_factor'=>0,
    'content_type_memorization' => true,
    'default_options'           => array(
    'cache' => true,
    'cache_with_get_variables' => true,
    'cache_with_post_variables' => true,
    'cache_with_session_variables' => true,
    'cache_with_cookie_variables' => true
    )));


$backendOptions = array('cache_dir' => '.' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR);

$cache = Zend_Cache::factory($myPageCache,
                             'File',
                             $frontendOptions,
                             $backendOptions);

$cacheKey = hash('md5', "cache_" . $cachePath); // cachePath is the key I use for the cache

if(!$cache->start($cacheKey)) {
I output html here
 $cache->end();
}

Ответы [ 2 ]

3 голосов
/ 17 мая 2010

Действительно. Мое чтение статического метода

Zend_Cache::factory($frontend, $back, $frontendOptions, $backendOptions, ...) 

означает, что $frontendOptions используются только при передаче строки для параметра $frontend. Когда вы передаете конкретный экземпляр, как вы делаете, $frontendOptions игнорируются.

Если вы все еще хотите передать конкретный экземпляр $myPageCache на фабрику, то, похоже, вам нужно передать параметр времени жизни (и другие) в вызов, который создает экземпляр. В противном случае вы можете загрузить один массив $frontendOptions и использовать:

$cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);
0 голосов
/ 13 мая 2010

ааа ... опс.

Это потому, что мое 'целое время жизни' => NULL игнорируется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...