/** * Load console from extension. * * @param KernelInterface $kernel */ private function loadConsoles(KernelInterface $kernel) { foreach ($kernel->getBundleManager()->all() as $bundle) { foreach ((array) $bundle->getContainerExtensions() as $extension) { if ($extension instanceof LoadConsoleInterface) { $this->add((array) $extension->loadConsole(), $kernel->getContainer()); } } } }
/** * Build response from controller. * * @param string $bundleName * @param string $controller * @param array $parameters * * @return mixed */ private function getBundleController($bundleName, $controller, array $parameters) { $bundleManager = $this->kernel->getBundleManager(); if (null !== ($bundle = $bundleManager->get($bundleName))) { $class = $bundle->getNamespace() . '\\' . $this->prefix . '\\' . $controller . 'Controller'; if (!class_exists($class)) { throw new RuntimeException(sprintf('Controller "%s" is undefined.', $class)); } return $this->container->getDi()->createInstance($class, $parameters); } throw new RuntimeException(sprintf('Bundle "%s" is undefined.', $bundleName)); }
/** * Build container * * @param KernelInterface $kernel */ private function buildContainer(KernelInterface $kernel) { $this->container = new ContainerBuilder(new ParameterBag($kernel->getKernelParameters())); $this->extension = new ExtensionManager(); $this->configuration = new Configuration(); $this->resource = new ResourceBuilder($this->container, $kernel->getBundleManager()->all()); // register some services foreach ($this->getDefaultServices($kernel) as $id => $service) { $this->container->register($id, $service, true); } // register it self. $this->container->register('container', $this->container, true); }
/** * {@inheritdoc} */ public function initialize(KernelInterface $kernel) { $kernel->getBundleManager()->add($this->getBundles($kernel)); }