使用Zend Data Cache - PHP API,是否有一种方法可以检索命名空间中的所有键?
基本上,我需要复制使用apc_cache_info可以执行的操作,例如
$info = apc_cache_info("user");
$keys = array();
foreach ($info["cache_list"] as $entry) {
$keys[] = $entry["info"];
}
从文件中可以看出这是否可行。
感谢。
答案 0 :(得分:1)
Zend File Backend支持getTags()和getIds()
class Zend_Cache_Backend_File
{
....
/**
* Return an array of stored tags
*
* @return array array of stored tags (string)
*/
public function getTags()
{
return $this->_get($this->_options['cache_dir'], 'tags', array());
}
/**
* Return an array of stored tags
*
* @return array array of stored tags (string)
*/
public function getTags()
{
return $this->_get($this->_options['cache_dir'], 'tags', array());
}
在我的bootstrap文件中,我初始化缓存
protected function _initCache()
{
$frontendOptions = array(
'lifetime' => 3600*24*5, // cache lifetime of 5 days
'automatic_serialization' => true,
'logging' => false,
'caching' => true
);
$backendOptions = array(
'cache_dir' => './../data/cache/', // Directory where to put the cache files
'hashed_directory_level' => 2
);
// getting a Zend_Cache_Core object
$cache = Zend_Cache::factory(
'Core',
'File',
$frontendOptions,
$backendOptions);
Zend_Registry::set('cache', $cache);
然后在我的控制器中我可以打电话
public function indexAction()
{
$cache = Zend_Registry::get('cache');
Zend_Debug::dump($cache->getTags());
Zend_Debug::dump($cache->getIds());
建议您检查您使用的特定缓存后端的Zend代码。
答案 1 :(得分:0)
后端支持Zend\Cache\Storage\Adapter\FilesystemIterator
Interator:
$cache = $this->serviceLocator->get('yourFilesystemCacheHere');
$iterator = $cache->getIterator();
foreach($iterator as $key){
echo $key;
}