Zend Framework: Zend_Cache_Frontend_Page не кэшируется при использовании параметров get - PullRequest
2 голосов
/ 08 мая 2011

Я использую фрагмент кода для кэширования всей страницы:

<?php

// Cache engine
// Cache everything outputed on the page for 2 minutes
// in the tmp folder

require_once 'Zend/Cache.php';

$frontendOptions = array(
   'lifetime' => 120,
   'automatic_serialization' => true,
   'cache_with_get_variables' => true,
   'cache_with_post_variables' => true,
   'cache_with_session_variables' => true,
   'cache_with_files_variables' => true,
   'cache_with_cookie_variables' => true
);

$backendOptions = array(
    'cache_dir' => '../tmp/'
);

$cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);
$cache->start();

echo date("D M j G:i:s T Y");

?>

Если я вызываю страницу, используя: http://localhost/myapp/cache.php, она работает ОТЛИЧНО

Если я вызываюиспользование страницы с параметром get: http://localhost/myapp/cache.php?test=5 страница не кэшируется

Я использую ZF 1.11.0

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 01 июня 2011

На самом деле это просто, у вас есть ошибка в настройках внешнего интерфейса, 'cache_with_XXX_variables' должен находиться в массиве с ключом 'default_options':

$frontendOptions = array(
   'lifetime' => 120,
   'automatic_serialization' => true,
   'default_options' => array(
            'cache' => true,
            'cache_with_get_variables' => true,
            'cache_with_post_variables' => true,
            'cache_with_session_variables' => true,
            'cache_with_files_variables' => true,
            'cache_with_cookie_variables' => true,
        )
);
0 голосов
/ 09 мая 2011

Я думаю, что вы должны изменить ваш интерфейсОпции:

    'make_id_with_get_variables' => true,
    'make_id_with_post_variables' => true,
    'make_id_with_session_variables' => true,
    'make_id_with_files_variables' => true,
    'make_id_with_cookie_variables' => true,
...