Chris@0: keyValueStore = $key_value_factory->get('locale.project'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function get($key, $default = NULL) { Chris@0: $values = $this->getMultiple([$key]); Chris@0: return isset($values[$key]) ? $values[$key] : $default; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getMultiple(array $keys) { Chris@0: $values = []; Chris@0: $load = []; Chris@0: foreach ($keys as $key) { Chris@0: // Check if we have a value in the cache. Chris@0: if (isset($this->cache[$key])) { Chris@0: $values[$key] = $this->cache[$key]; Chris@0: } Chris@0: // Load the value if we don't have an explicit NULL value. Chris@0: elseif (!array_key_exists($key, $this->cache)) { Chris@0: $load[] = $key; Chris@0: } Chris@0: } Chris@0: Chris@0: if ($load) { Chris@0: $loaded_values = $this->keyValueStore->getMultiple($load); Chris@0: foreach ($load as $key) { Chris@0: // If we find a value, even one that is NULL, add it to the cache and Chris@0: // return it. Chris@0: if (isset($loaded_values[$key])) { Chris@0: $values[$key] = $loaded_values[$key]; Chris@0: $this->cache[$key] = $loaded_values[$key]; Chris@0: } Chris@0: else { Chris@0: $this->cache[$key] = NULL; Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: return $values; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function set($key, $value) { Chris@0: $this->setMultiple([$key => $value]); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function setMultiple(array $data) { Chris@0: foreach ($data as $key => $value) { Chris@0: $this->cache[$key] = $value; Chris@0: } Chris@0: $this->keyValueStore->setMultiple($data); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function delete($key) { Chris@0: $this->deleteMultiple([$key]); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function deleteMultiple(array $keys) { Chris@0: foreach ($keys as $key) { Chris@0: $this->cache[$key] = NULL; Chris@0: } Chris@0: $this->keyValueStore->deleteMultiple($keys); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function resetCache() { Chris@0: $this->cache = []; Chris@0: static::$all = FALSE; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function deleteAll() { Chris@0: $this->keyValueStore->deleteAll(); Chris@0: $this->resetCache(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function disableAll() { Chris@0: $projects = $this->keyValueStore->getAll(); Chris@0: foreach (array_keys($projects) as $key) { Chris@0: $projects[$key]['status'] = 0; Chris@0: if (isset($cache[$key])) { Chris@0: $cache[$key] = $projects[$key]; Chris@0: } Chris@0: } Chris@0: $this->keyValueStore->setMultiple($projects); Chris@0: Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function countProjects() { Chris@0: return count($this->getAll()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getAll() { Chris@0: if (!static::$all) { Chris@0: $this->cache = $this->keyValueStore->getAll(); Chris@0: static::$all = TRUE; Chris@0: } Chris@0: return $this->cache; Chris@0: } Chris@0: Chris@0: }