/** * {@inheritdoc} */ public function getMultiple(array $keys) { $values = array(); $load = array(); foreach ($keys as $key) { // Check if we have a value in the cache. if (isset($this->cache[$key])) { $values[$key] = $this->cache[$key]; } 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 doLoadMultiple(array $ids = NULL) { if (empty($ids)) { $entities = $this->keyValueStore->getAll(); } else { $entities = $this->keyValueStore->getMultiple($ids); } return $this->mapFromStorageRecords($entities); }