我是Zend Framework的新手。我正在使用Zend Cache,我几乎从文档中复制了代码,这是我的代码:
$frontendOptions = array(
'lifetime' => 3600, // cache lifetime of 1 hour
'automatic_serialization' => true
);
$backendOptions = array(
'cache_dir' => '../tmp/' // Directory where to put the cache files
);
// getting a Zend_Cache_Core object
$cache = Zend_Cache::factory('Core',
'File',
$frontendOptions,
$backendOptions);
// see if a cache already exists:
if( ($paginator = $cache->load('index' . $page)) === false ) {
$table = new self;
$query = $table->select()->setIntegrityCheck(false);
$query->from('feeds', array('feeds.blog_id', 'feeds.date_created', 'feeds.feed_id', 'feeds.post_content', 'feeds.post_link', 'feeds.post_title', 'feeds.post_thumb'));
$query->where('feeds.date_created <= NOW()');
$query->order('feeds.date_created DESC');
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($query));
$paginator->setItemCountPerPage(10);
$paginator->setCurrentPageNumber($page);
$cache->save($paginator, 'index' . $page);
}
return $paginator;
因此,在我访问运行此查询的网站后,我看到了正在创建的文件,它也是19或20kb文件,无论哪个页面im caching in im caching,但页面的加载速度与以前相同,也是我在数据库中更新了某些内容,看到更新版本,而不是缓存,我认为Cache不会显示缓存寿命的任何更新。有什么建议么?谢谢
女指定器本身不是您喜欢缓存的对象 - 您必须缓存DB的结果,该结果将在Paginator内部完成。
做有一种方法可以将您的缓存对象连接到Paginator
Zend_Paginator::setCache($cache);
$paginator->setCacheEnabled(true);
和Paginator将为您处理缓存。
从缓存恢复的吊架,执行该操作 - 执行查询。每次您从缓存加载时都可以做到。
您应该保存最终结果,而不是打架者。