2013-12-18 77 views
0

我写了函数来缓存我网站中的每个页面,并将这个函数放在Bootstrap文件中。Zend Cache不从缓存中读取

缓存文件是在每个请求上创建的,即使是同一页也是如此。

我错过了什么吗?

即使我从配置中删除正则表达式数组,它也不起作用。

的Zend 1.12.3

protected function _initCache() { 
    $cachePath = APPLICATION_PATH 
     . DIRECTORY_SEPARATOR 
     . '..' 
     . DIRECTORY_SEPARATOR 
     . '_cache'; 

    $fO = array(
     'lifetime' => 7200, 
     'automatic_serialization' => true, 
     'regexps' => array(
      '^/admin/' => array(
       'cache' => false 
      ), 
      '^/account/' => array(
       'cache' => false 
      ), 
      '^/cart/' => array(
       'cache' => false 
      ), 
     ), 
     '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, 
     ), 
    ); 

    $bO = array(
     'cache_dir' => $cachePath 
    ); 

    $cache = Zend_Cache::factory('Page', 'File', $fO, $bO); 
    $cache->start(); 
} 

回答

0

从Zend的文档:

注意:在使用Zend_Cache,要注意的Cache标识(传递给save()和start())。对于您缓存的每个资源而言,它必须是唯一的,否则不相关的缓存记录可能会互相擦除,甚至更糟糕,可能会显示其他缓存记录。

read more

+0

我认为这不是一个问题在这里。 Zend_Cache为start()自动生成id,为什么Zend_Cache为同样的内容生成另一个id(和缓存文件)? – sanneo

+0

如果未指定start()方法的参数,则zend会从 'Get','Post','Session','Files'和'Cookie'创建ID。你确定每次都是一样的吗? –