searchEngines = []; } /** * Method for registering new settings extensions/parts * * @param SearchHandler $search * @param SearchPresenterHandler $presenter * * @throws EnumerationExistsException */ public function register(SearchHandler $search, SearchPresenterHandler $presenter) { $this->checkIfRegistered($search->getId()); // register new extension $this->searchEngines[$search->getId()] = [$search, $presenter]; } /** * Getter for all registered extensions * * @return array */ public function get() { return $this->searchEngines; } /** * Checks if this section is not already defined * * @param $id * * @throws EnumerationExistsException */ private function checkIfRegistered($id) { if (isset($this->searchEngines[$id])) { throw new EnumerationExistsException('Already existing search engine ' . $id); } } }