2012-01-05 6 views
2

Zend Data Cache - PHP APIには、ネームスペース内のすべてのキーを取得する方法がありますか?Zend Data Cacheでネームスペース内のすべてのキーを取得する

基本的に、私はこれが可能であればそれは文書から明らかでないが、このような

$info = apc_cache_info("user"); 
$keys = array(); 

foreach ($info["cache_list"] as $entry) { 
    $keys[] = $entry["info"]; 
} 

として、あなたがapc_cache_infoで何ができるかを複製する必要があります。

ありがとうございました。

答えて

1

バックエンドは、私のブートストラップファイルで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()); 
    } 

をサポートZendのファイルは、私は

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()); 
呼び出すことができますキャッシュにはinit

あなたが使用している特定のキャッシュバックエンドのZendコードを確認することをお勧めします。

+0

あなたは(getTagsを持っている)を2回ここで、何getIdsは()のように見えると2つの違いは何でしょうか? –

+0

心配しないで、私はそれを理解しました。興味のある人は、クラスの完全なソースコードをここで見ることができます: 'http://www.tig12.net/downloads/apidocs/zf/Cache/Backend/ File.php.source.html' –

+0

男、これは役に立たず、私はそれを理解しようと多くの時間を費やしました)))。ちょうどapcに固執する –

0

バックエンドがZend\Cache\Storage\Adapter\FilesystemIterator Interatorをサポートしています。

$cache = $this->serviceLocator->get('yourFilesystemCacheHere'); 
$iterator = $cache->getIterator(); 
foreach($iterator as $key){ 
    echo $key; 
} 
関連する問題