0

Voici mon code d'initialisation du cache:Obtenir toutes les clés du cache dans Zend Cache

use Zend\Cache\StorageFactory; 
$cache = StorageFactory::factory(array(
        'adapter' => array(
          'name' => 'filesystem', 
          // With a namespace we can indicate the same type of items 
          // -> So we can simple use the db id as cache key 
          'options' => array(
            'namespace' => 'dbtable', 
            'cache_dir' => Pluto::path('cache') 
          ), 
        ), 
        'plugins' => array(
          // Don't throw exceptions on cache errors 
          'exception_handler' => array(
            'throw_exceptions' => false 
          ), 
          // We store database rows on filesystem so we need to serialize them 
          'Serializer' 
        ) 
      )); 

Ce que jaimerais savoir est comment puis-je obtenir toutes les clés du cache que nous avons dans cet objet cache

Par exemple, l'exécution de ce code maintenant:

$cache->setItem('key1','foo'); 

$cache->setItem('key2','bar'); 

$cache->setItem('key3','baz'); 

et l'exécution de ce code à une autre zone/Point:

$cache->setItem('key4','foo2'); 

$cache->setItem('key5','bar2'); 

$cache->setItem('key6','baz2'); 

Je voudrais un tableau contenant ['key1','key2','key3','key4','key5','key6'] qui viendrait presumbly d'un tableau interne de toutes les clés à l'intérieur de l'objet du cache (y compris ceux qui ne sont pas touchés au cours de cette demande spécifique)? Autant que je sache, il n'y a aucune méthode de zend-cache pour récupérer toutes les clés à l'intérieur de l'objet cache.

Répondre

0

Mais si vous voulez récupérer toutes les clés, vous pouvez itérer l'objet. Ce n'est pas array, mais vous pouvez le faire comme array si vous voulez.

$caches = $cache->getIterator(); 
$cacheKeys = [] 
foreach ($caches as $key) { 
    // $key is the cache key 
    $cacheKeys[] = $key; 
} 

print_r($cacheKeys); 
+0

@jkushner, veuillez ajouter cette réponse si c'est utile –