/** * @param array $names * @return PreferenceEntity[] */ private function loadPreferences(array $names) { $tmp = array_filter($names, function ($name) { return !array_key_exists($name, $this->preferences); }); if (!empty($tmp)) { $result = $this->preferenceDao->findAssoc(['name' => $tmp], 'name'); foreach ($tmp as $name) { $this->preferences[$name] = isset($result[$name]) ? $result[$name] : NULL; } } $preferences = []; foreach ($names as $name) { $preferences[$name] = $this->preferences[$name]; } return $preferences; }