/** * Get a search manager instance for testing search objects. * * @return \VuFind\Search\Manager */ public function getSearchManager() { $sm = $this->getServiceManager(); if (!$sm->has('SearchManager')) { $searchManager = new \VuFind\Search\Manager(array('default_namespace' => 'VuFind\\Search')); $searchManager->setServiceLocator($sm); $sm->setService('SearchManager', $searchManager); } return $sm->get('SearchManager'); }
/** * Set up plugin managers. * * @return void */ protected function initPluginManagers() { $app = $this->event->getApplication(); $serviceManager = $app->getServiceManager(); $config = $app->getConfig(); // Use naming conventions to set up a bunch of services based on namespace: $namespaces = array('Auth', 'Autocomplete', 'Db\\Table', 'ILS\\Driver', 'Recommend', 'RecordDriver', 'Related', 'Resolver\\Driver', 'Session', 'Statistics\\Driver'); foreach ($namespaces as $ns) { $serviceName = str_replace('\\', '', $ns) . 'PluginManager'; $className = 'VuFind\\' . $ns . '\\PluginManager'; $configKey = strtolower(str_replace('\\', '_', $ns)) . '_plugin_manager'; $service = new $className(new ServiceManagerConfig($config[$configKey])); if ($service instanceof ServiceLocatorAwareInterface) { $service->setServiceLocator($serviceManager); } $serviceManager->setService($serviceName, $service); } // Set up search manager a little differently -- it is a more complex class // that doesn't work like the other standard plugin managers. $manager = new \VuFind\Search\Manager($config['search_manager']); $manager->setServiceLocator($serviceManager); $serviceManager->setService('SearchManager', $manager); // TODO: factor out static connection manager. \VuFind\Connection\Manager::setServiceLocator($serviceManager); }