protected function setUp() { $module = new Module(); $events = new EventManager(); $sharedEvents = new SharedEventManager(); $events->setSharedManager($sharedEvents); $plugins = new ControllerPluginManager(); $this->serviceManager = new ServiceManager(); $this->serviceManager->setService('Zend\\ServiceManager\\ServiceLocatorInterface', $this->serviceManager); $this->serviceManager->setService('EventManager', $events); $this->serviceManager->setService('SharedEventManager', $sharedEvents); $this->serviceManager->setService('ControllerPluginManager', $plugins); $this->controllerManager = new ControllerManager(new Config($module->getControllerConfig())); $this->controllerManager->setServiceLocator($this->serviceManager); $this->controllerManager->addPeeringServiceManager($this->serviceManager); }
/** * Create the controller loader service * * Creates and returns an instance of ControllerManager. The * only controllers this manager will allow are those defined in the * application configuration's "controllers" array. If a controller is * matched, the scoped manager will attempt to load the controller. * Finally, it will attempt to inject the controller plugin manager * if the controller implements a setPluginManager() method. * * This plugin manager is _not_ peered against DI, and as such, will * not load unknown classes. * * @param ServiceLocatorInterface $serviceLocator * @return ControllerManager */ public function createService(ServiceLocatorInterface $serviceLocator) { $controllerLoader = new ControllerManager(); $controllerLoader->setServiceLocator($serviceLocator); $controllerLoader->addPeeringServiceManager($serviceLocator); $config = $serviceLocator->get('Config'); if (isset($config['di']) && isset($config['di']['allowed_controllers']) && $serviceLocator->has('Di')) { $controllerLoader->addAbstractFactory($serviceLocator->get('DiStrictAbstractServiceFactory')); } return $controllerLoader; }