/** * @return ContainerInterface */ public function startContainer() { if (true === $this->isStarted()) { return $this->container; } $configAsArray = iterator_to_array($this->config->getIterator()); $this->internalConfig['parameters'] = $configAsArray; $this->container = $this->createContainer(new ArrayConfig($this->internalConfig)); $loggerFactory = new LoggerFactory($this->config->get('debug'), $this->config->get('log_dir')); $this->container->bind('LoggerFactory', $loggerFactory); if (null !== $this->router) { // Keep compatibility, use the right type hint in the application as usual (UrlGeneratorInterface, UrlMatcherInterface) $this->container->bind('UrlMatcher', $this->router->getUrlMatcher()); $this->container->bind('UrlGenerator', $this->router->getUrlGenerator()); $this->container->bind('RouteCollection', $this->router->getRouteCollection()); } $this->container->bind('AppLogger', $this->loggerFactory->getLogger('app')); $this->started = true; return $this->container; }