public function testPeeringService() { $di = new Di(); $di->instanceManager()->setParameters('ZendTest\ServiceManager\TestAsset\Bar', array('foo' => array('a'))); $this->serviceManager->addAbstractFactory(new DiAbstractServiceFactory($di)); $sm = $this->serviceManager->createScopedServiceManager(ServiceManager::SCOPE_PARENT); $sm->setFactory('di', new DiFactory()); $bar = $sm->get('ZendTest\ServiceManager\TestAsset\Bar', true); $this->assertInstanceOf('ZendTest\ServiceManager\TestAsset\Bar', $bar); }
/** * @covers Zend\ServiceManager\ServiceManager::createScopedServiceManager */ public function testCreateScopedServiceManager() { $this->serviceManager->setService('foo', 'bar'); $scopedServiceManager = $this->serviceManager->createScopedServiceManager(); $this->assertNotSame($this->serviceManager, $scopedServiceManager); $this->assertFalse($scopedServiceManager->has('foo', false)); $this->assertContains($this->serviceManager, $this->readAttribute($scopedServiceManager, 'peeringServiceManagers')); // test child scoped $childScopedServiceManager = $this->serviceManager->createScopedServiceManager(ServiceManager::SCOPE_CHILD); $this->assertContains($childScopedServiceManager, $this->readAttribute($this->serviceManager, 'peeringServiceManagers')); }
/** * Support method for getServiceManager() * * @return void */ protected function setupSearchService() { $smConfig = new \Zend\ServiceManager\Config(['factories' => ['Solr' => 'VuFind\\Search\\Factory\\SolrDefaultBackendFactory', 'SolrAuth' => 'VuFind\\Search\\Factory\\SolrAuthBackendFactory']]); $registry = $this->serviceManager->createScopedServiceManager(); $smConfig->configureServiceManager($registry); $bm = new \VuFind\Search\BackendManager($registry); $this->serviceManager->setService('VuFind\\Search\\BackendManager', $bm); $ss = new \VuFindSearch\Service(); $this->serviceManager->setService('VuFind\\Search', $ss); $fh = new \VuFind\Search\Solr\HierarchicalFacetHelper(); $this->serviceManager->setService('VuFind\\HierarchicalFacetHelper', $fh); $events = $ss->getEventManager(); $events->attach('resolve', [$bm, 'onResolve']); }
/** * Construct the search backend manager. * * @param ServiceManager $sm Service manager. * * @return \VuFind\Search\BackendManager */ public static function getSearchBackendManager(ServiceManager $sm) { $config = $sm->get('config'); $smConfig = new \Zend\ServiceManager\Config($config['vufind']['plugin_managers']['search_backend']); $registry = $sm->createScopedServiceManager(); $smConfig->configureServiceManager($registry); $manager = new \VuFind\Search\BackendManager($registry); return $manager; }
public function testPeeringServiceFallbackOnCreateFailure() { $factory = function ($sm) { return new TestAsset\Bar(); }; $serviceManager = new ServiceManager(); $serviceManager->setFactory('ZendTest\\ServiceManager\\TestAsset\\Bar', $factory); $sm = $serviceManager->createScopedServiceManager(ServiceManager::SCOPE_CHILD); $di = new Di(); $di->instanceManager()->setParameters('ZendTest\\ServiceManager\\TestAsset\\Bar', array('foo' => array('a'))); $sm->addAbstractFactory(new DiAbstractServiceFactory($di)); $bar = $serviceManager->get('ZendTest\\ServiceManager\\TestAsset\\Bar'); $this->assertInstanceOf('ZendTest\\ServiceManager\\TestAsset\\Bar', $bar); }