protected function buildContainer($class, $file) { $container = new Builder(new ParameterBag($this->getKernelParameters())); $configuration = new BuilderConfiguration(); foreach ($this->bundles as $bundle) { $configuration->merge($bundle->buildContainer($container)); if ($this->debug) { $configuration->addObjectResource($bundle); } } $configuration->merge($this->registerContainerConfiguration()); $container->merge($configuration); $container->freeze(); foreach (array('cache', 'logs') as $name) { $dir = $container->getParameter(sprintf('kernel.%s_dir', $name)); if (!is_dir($dir)) { if (false === @mkdir($dir, 0777, true)) { die(sprintf('Unable to create the %s directory (%s)', $name, dirname($dir))); } } elseif (!is_writable($dir)) { die(sprintf('Unable to write in the %s directory (%s)', $name, $dir)); } } // cache the container $dumper = new PhpDumper($container); $content = $dumper->dump(array('class' => $class)); if (!$this->debug) { $content = self::stripComments($content); } $this->writeCacheFile($file, $content); if ($this->debug) { $configuration->addObjectResource($this); // save the resources $this->writeCacheFile($this->getCacheDir() . '/' . $class . '.meta', serialize($configuration->getResources())); } }