/** * Register the services. * * @throws Exception * @return void */ public function registerServices() { if (empty($this->_moduleName)) { $class = new \ReflectionClass($this); throw new \Exception('Bootstrap has no module name: ' . $class->getFileName()); } $di = $this->getDI(); $config = $this->getConfig(); $eventsManager = $this->getEventsManager(); $moduleDirectory = $this->getModuleDirectory(); /*************************************************/ // Initialize view. /*************************************************/ $di->set('view', function () use($di, $config, $moduleDirectory, $eventsManager) { return View::factory($di, $config, $moduleDirectory . '/View/', $eventsManager); }); /*************************************************/ // Initialize dispatcher. /*************************************************/ $eventsManager->attach('dispatch:beforeException', new DispatchErrorHandler()); // Create dispatcher. $dispatcher = new Dispatcher(); $dispatcher->setEventsManager($eventsManager); $di->set('dispatcher', $dispatcher); }
/** * Initialize view. * * @param DIBehaviour|DI $di Dependency Injection. * @param Config $config Config object. * @param EventsManager $eventsManager Event manager. * * @return void */ protected function _initView($di, $config, $eventsManager) { /*************************************************/ // Initialize view. /*************************************************/ $di->setShared('view', View::factory($di, $config, null, $eventsManager)); }