Browse Source

[HttpKernel] moved the creation of logs/ and cache/ ealier to be sure that directories exist when extensions want to write something into them

Fabien Potencier 14 years ago
parent
commit
faab5e4452
1 changed files with 10 additions and 11 deletions
  1. 10 11
      src/Symfony/Component/HttpKernel/Kernel.php

+ 10 - 11
src/Symfony/Component/HttpKernel/Kernel.php

@@ -565,6 +565,16 @@ abstract class Kernel implements KernelInterface
      */
     protected function buildContainer()
     {
+        foreach (array('cache' => $this->getCacheDir(), 'logs' => $this->getLogDir()) as $name => $dir) {
+            if (!is_dir($dir)) {
+                if (false === @mkdir($dir, 0777, true)) {
+                    throw new \RuntimeException(sprintf("Unable to create the %s directory (%s)\n", $name, dirname($dir)));
+                }
+            } elseif (!is_writable($dir)) {
+                throw new \RuntimeException(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
+            }
+        }
+
         $container = new ContainerBuilder(new ParameterBag($this->getKernelParameters()));
         $extensions = array();
         foreach ($this->bundles as $bundle) {
@@ -588,17 +598,6 @@ abstract class Kernel implements KernelInterface
             $container->merge($cont);
         }
 
-        foreach (array('cache', 'logs') as $name) {
-            $dir = $container->getParameter(sprintf('kernel.%s_dir', $name));
-            if (!is_dir($dir)) {
-                if (false === @mkdir($dir, 0777, true)) {
-                    throw new \RuntimeException(sprintf("Unable to create the %s directory (%s)\n", $name, dirname($dir)));
-                }
-            } elseif (!is_writable($dir)) {
-                throw new \RuntimeException(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
-            }
-        }
-
         $container->addCompilerPass(new AddClassesToCachePass($this));
         $container->compile();