/**
  * {@inheritdoc}
  */
 public function readMultiple(array $names)
 {
     $data_to_return = array();
     $cache_keys_map = $this->getCacheKeys($names);
     $cache_keys = array_values($cache_keys_map);
     $cached_list = $this->cache->getMultiple($cache_keys);
     if (!empty($cache_keys)) {
         // $cache_keys_map contains the full $name => $cache_key map, while
         // $cache_keys contains just the $cache_key values that weren't found in
         // the cache.
         // @see \Drupal\Core\Cache\CacheBackendInterface::getMultiple()
         $names_to_get = array_keys(array_intersect($cache_keys_map, $cache_keys));
         $list = $this->storage->readMultiple($names_to_get);
         // Cache configuration objects that were loaded from the storage, cache
         // missing configuration objects as an explicit FALSE.
         $items = array();
         foreach ($names_to_get as $name) {
             $data = isset($list[$name]) ? $list[$name] : FALSE;
             $data_to_return[$name] = $data;
             $items[$cache_keys_map[$name]] = array('data' => $data);
         }
         $this->cache->setMultiple($items);
     }
     // Add the configuration objects from the cache to the list.
     $cache_keys_inverse_map = array_flip($cache_keys_map);
     foreach ($cached_list as $cache_key => $cache) {
         $name = $cache_keys_inverse_map[$cache_key];
         $data_to_return[$name] = $cache->data;
     }
     // Ensure that only existing configuration objects are returned, filter out
     // cached information about missing objects.
     return array_filter($data_to_return);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function readMultiple(array $names)
 {
     $list = array();
     // The names array is passed by reference and will only contain the names of
     // config object not found after the method call.
     // @see \Drupal\Core\Cache\CacheBackendInterface::getMultiple()
     $cached_list = $this->cache->getMultiple($names);
     if (!empty($names)) {
         $list = $this->storage->readMultiple($names);
         // Cache configuration objects that were loaded from the storage, cache
         // missing configuration objects as an explicit FALSE.
         $items = array();
         foreach ($names as $name) {
             $items[$name] = array('data' => isset($list[$name]) ? $list[$name] : FALSE);
         }
         $this->cache->setMultiple($items);
     }
     // Add the configuration objects from the cache to the list.
     foreach ($cached_list as $name => $cache) {
         $list[$name] = $cache->data;
     }
     // Ensure that only existing configuration objects are returned, filter out
     // cached information about missing objects.
     return array_filter($list);
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function setMultiple(array $items)
 {
     $this->consistentBackend->setMultiple($items);
     $this->markAsOutdated();
     // Don't write the cache tags to the fast backend as any cache tag
     // invalidation results in an invalidation of the whole fast backend.
     foreach ($items as &$item) {
         unset($item['tags']);
     }
     $this->fastBackend->setMultiple($items);
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function setMultiple(array $items)
 {
     $this->markAsOutdated();
     $this->consistentBackend->setMultiple($items);
     $this->fastBackend->setMultiple($items);
 }
Ejemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function setMultiple(array $items)
 {
     return $this->cacheBackend->setMultiple($items);
 }