/**
  * {@inheritdoc}
  */
 public function initialize(KernelInterface $kernel)
 {
     $env = $kernel->getEnvironmentManager()->getEnv();
     if (empty($this->environments)) {
         foreach ($kernel->registerEnvironments() as $environment) {
             $name = $environment->getName();
             $this->assertUnregisteredEnvironment($name);
             $this->environments[$name] = $environment;
         }
     }
     if (!isset($this->environments[$env])) {
         throw new RuntimeException(sprintf('Environment "%s" is not registered.', $env));
     }
     $env = $this->environments[$env];
     $env->build($kernel);
     $kernel->getEnvironmentManager()->setEnvInstance($env);
 }
 /**
  * {@inheritdoc}
  */
 public function initialize(KernelInterface $kernel)
 {
     $this->container = $kernel->getContainer();
     $this->serviceLocator = $kernel->getServiceLocator();
     $env = $kernel->getEnvironmentManager()->getEnvInstance();
     $resolver = $this->container->getParameterBag()->getResolver();
     $configs = (array) $env->registerConfigurations();
     $configs = $this->getResource()->process(new FileLoader(), $configs);
     $this->loadParametersFromConfig($configs);
     $this->loadServicesFromConfig($configs);
     // Append configuration by extension
     foreach ($resolver->resolveValue($configs) as $alias => $config) {
         if (!$this->getExtension()->has($alias)) {
             throw new RuntimeException(sprintf('Extension with alias "%s" not found.', $alias));
         }
         $extension = $this->getExtension()->get($alias);
         $this->getConfiguration()->prepend($extension->getConfigDefinition(), array($config));
     }
 }
 /**
  * {@inheritdoc}
  */
 public function initialize(KernelInterface $kernel)
 {
     $middlewareContainer = $kernel->getMiddleware();
     $container = $kernel->getContainer();
     $env = $kernel->getEnvironmentManager()->getEnvInstance();
     $middlewareContainer->setContainer($container);
     $bundleMiddlewares = (array) $kernel->registerMiddlewares();
     $envMiddlewares = (array) $env->registerMiddlewares();
     foreach (array_merge($bundleMiddlewares, $envMiddlewares) as $middleware) {
         if ($middleware instanceof MiddlewareInterface) {
             if ($middleware instanceof ContainerAwareInterface) {
                 $middleware->setContainer($container);
             }
             $middlewareContainer->set($middleware);
             continue;
         }
         throw new InvalidArgumentException(sprintf('Class "%s" should implement "%s".', get_class($middleware), 'Borobudur\\Kernel\\Middleware\\MiddlewareInterface'));
     }
 }
 /**
  * Get bundles.
  *
  * @param KernelInterface $kernel
  *
  * @return array
  */
 private function getBundles(KernelInterface $kernel)
 {
     $env = $kernel->getEnvironmentManager()->getEnvInstance();
     return array_merge((array) $kernel->registerBundles(), (array) $env->registerBundles());
 }