浏览代码

Merge remote branch 'hason/container_class'

Fabien Potencier 14 年之前
父节点
当前提交
b6528c3ea6

+ 2 - 4
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php

@@ -41,10 +41,8 @@ class ContainerBuilderDebugDumpPass implements CompilerPassInterface
      */
     static public function getBuilderCacheFilename(ContainerInterface $container)
     {
-        $name = $container->getParameter('kernel.name');
-        $env = ucfirst($container->getParameter('kernel.environment'));
-        $debug = $container->getParameter('kernel.debug') ? 'Debug' : '';
+        $class = $container->getParameter('kernel.container_class');
 
-        return $container->getParameter('kernel.cache_dir').'/'.$name.$env.$debug.'ProjectContainerBuilder.cache';
+        return $container->getParameter('kernel.cache_dir').'/'.$class.'Builder.cache';
     }
 }

+ 20 - 9
src/Symfony/Component/HttpKernel/Kernel.php

@@ -397,9 +397,19 @@ abstract class Kernel implements KernelInterface
 
     }
 
+    /**
+     * Gets the container class.
+     *
+     * @return string The container class
+     */
+    protected function getContainerClass()
+    {
+        return $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer';
+    }
+
     protected function initializeContainer()
     {
-        $class = $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer';
+        $class = $this->getContainerClass();
         $cache = new ConfigCache($this->getCacheDir().'/'.$class.'.php', $this->debug);
         $fresh = false;
         if (!$cache->isFresh()) {
@@ -428,14 +438,15 @@ abstract class Kernel implements KernelInterface
 
         return array_merge(
             array(
-                'kernel.root_dir'    => $this->rootDir,
-                'kernel.environment' => $this->environment,
-                'kernel.debug'       => $this->debug,
-                'kernel.name'        => $this->name,
-                'kernel.cache_dir'   => $this->getCacheDir(),
-                'kernel.logs_dir'    => $this->getLogDir(),
-                'kernel.bundles'     => $bundles,
-                'kernel.charset'     => 'UTF-8',
+                'kernel.root_dir'        => $this->rootDir,
+                'kernel.environment'     => $this->environment,
+                'kernel.debug'           => $this->debug,
+                'kernel.name'            => $this->name,
+                'kernel.cache_dir'       => $this->getCacheDir(),
+                'kernel.logs_dir'        => $this->getLogDir(),
+                'kernel.bundles'         => $bundles,
+                'kernel.charset'         => 'UTF-8',
+                'kernel.container_class' => $this->getContainerClass(),
             ),
             $this->getEnvParameters()
         );