浏览代码

namespaced Kernel support for cache:clear

lenar 14 年之前
父节点
当前提交
6ec84bad76
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php

+ 13 - 0
src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php

@@ -98,12 +98,22 @@ EOF
     protected function getTempKernel(KernelInterface $parent, $debug, $warmupDir)
     {
         $parentClass = get_class($parent);
+        
+        $namespace = '';
+        if (($pos = strrpos($parentClass, '\\')) !== false) {
+            $namespace = substr($parentClass, 0, $pos);
+            $parentClass = substr($parentClass, $pos + 1);
+        }
+        
         $rand = uniqid();
         $class = $parentClass.$rand;
         $rootDir = $parent->getRootDir();
         $code = <<<EOF
 <?php
 
+namespace $namespace 
+{
+
 class $class extends $parentClass
 {
     public function getCacheDir()
@@ -121,12 +131,15 @@ class $class extends $parentClass
         return parent::getContainerClass().'__{$rand}__';
     }
 }
+
+}
 EOF;
         $this->container->get('filesystem')->mkdirs($warmupDir);
         file_put_contents($file = $warmupDir.'/kernel.tmp', $code);
         require_once $file;
         @unlink($file);
 
+        $class = "\\$namespace\\$class"; 
         return new $class($parent->getEnvironment(), $debug);
     }
 }