Changeset 3950

Show
Ignore:
Timestamp:
03/08/08 05:33:22 (16 months ago)
Author:
jwage
Message:

fixes #814

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/0.10/lib/Doctrine/Cli.php

    r3884 r3950  
    287287        $tasks = array(); 
    288288         
    289         foreach ((array) $directory as $dir) { 
    290             $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), 
    291                                                     RecursiveIteratorIterator::LEAVES_ONLY); 
    292  
    293             foreach ($it as $file) { 
    294                 $e = explode('.', $file->getFileName()); 
    295                 if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 
     289        if (is_dir($directory)) { 
     290            foreach ((array) $directory as $dir) { 
     291                $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), 
     292                                                        RecursiveIteratorIterator::LEAVES_ONLY); 
     293 
     294                foreach ($it as $file) { 
     295                    $e = explode('.', $file->getFileName()); 
     296                    if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 
    296297                     
    297                     $className = 'Doctrine_Task_' . $e[0]; 
     298                        $className = 'Doctrine_Task_' . $e[0]; 
    298299                     
    299                     if ( ! class_exists($className)) { 
    300                         require_once($file->getPathName()); 
     300                        if ( ! class_exists($className)) { 
     301                            require_once($file->getPathName()); 
    301302                     
    302                         $class = new ReflectionClass($className); 
     303                            $class = new ReflectionClass($className); 
    303304                     
    304                         if ($class->isSubClassOf($parent)) { 
    305                             $tasks[$e[0]] = $e[0]; 
     305                            if ($class->isSubClassOf($parent)) { 
     306                                $tasks[$e[0]] = $e[0]; 
     307                            } 
    306308                        } 
    307309                    } 
     
    309311            } 
    310312        } 
    311          
     313 
     314        $classes = get_declared_classes(); 
     315        foreach ($classes as $className) { 
     316            $class = new Reflectionclass($className); 
     317            if ($class->isSubClassOf($parent)) { 
     318                $task = str_replace('Doctrine_Task_', '', $className); 
     319                $tasks[$task] = $task; 
     320            } 
     321        } 
     322 
    312323        $this->_tasks = array_merge($this->_tasks, $tasks); 
    313324