keyValueStore = $key_value_factory->get('state'); } /** * {@inheritdoc} */ public function get($key, $default = NULL) { $values = $this->getMultiple([$key]); return isset($values[$key]) ? $values[$key] : $default; } /** * {@inheritdoc} */ public function getMultiple(array $keys) { $values = []; $load = []; foreach ($keys as $key) { // Check if we have a value in the cache. if (isset($this->cache[$key])) { $values[$key] = $this->cache[$key]; } // Load the value if we don't have an explicit NULL value. elseif (!array_key_exists($key, $this->cache)) { $load[] = $key; } } if ($load) { $loaded_values = $this->keyValueStore->getMultiple($load); foreach ($load as $key) { // If we find a value, even one that is NULL, add it to the cache and // return it. if (isset($loaded_values[$key]) || array_key_exists($key, $loaded_values)) { $values[$key] = $loaded_values[$key]; $this->cache[$key] = $loaded_values[$key]; } else { $this->cache[$key] = NULL; } } } return $values; } /** * {@inheritdoc} */ public function set($key, $value) { $this->cache[$key] = $value; $this->keyValueStore->set($key, $value); } /** * {@inheritdoc} */ public function setMultiple(array $data) { foreach ($data as $key => $value) { $this->cache[$key] = $value; } $this->keyValueStore->setMultiple($data); } /** * {@inheritdoc} */ public function delete($key) { $this->deleteMultiple([$key]); } /** * {@inheritdoc} */ public function deleteMultiple(array $keys) { foreach ($keys as $key) { unset($this->cache[$key]); } $this->keyValueStore->deleteMultiple($keys); } /** * {@inheritdoc} */ public function resetCache() { $this->cache = []; } }