getClassTree() public static method

Returns class and all its descendants.
public static getClassTree ( ReflectionClass $class ) : string[]
$class ReflectionClass
return string[]
Beispiel #1
0
 /**
  * Exports dependencies.
  * @return array
  */
 public function export()
 {
     $files = $phpFiles = $classes = $functions = [];
     foreach ($this->dependencies as $dep) {
         if (is_string($dep)) {
             $files[] = $dep;
         } elseif ($dep instanceof ReflectionClass) {
             if (empty($classes[$dep->getName()])) {
                 foreach (PhpReflection::getClassTree($dep) as $item) {
                     $phpFiles[] = (new ReflectionClass($item))->getFileName();
                     $classes[$item] = TRUE;
                 }
             }
         } elseif ($dep instanceof \ReflectionFunctionAbstract) {
             $phpFiles[] = $dep->getFileName();
             $functions[] = $dep instanceof ReflectionMethod ? $dep->getDeclaringClass()->getName() . '::' . $dep->getName() : $dep->getName();
         } else {
             throw new Nette\InvalidStateException('Unexpected dependency ' . gettype($dep));
         }
     }
     $classes = array_keys($classes);
     $functions = array_unique($functions, SORT_REGULAR);
     $hash = self::calculateHash($classes, $functions);
     $files = @array_map('filemtime', array_combine($files, $files));
     // @ - file may not exist
     $phpFiles = @array_map('filemtime', array_combine($phpFiles, $phpFiles));
     // @ - file may not exist
     return [self::VERSION, $files, $phpFiles, $classes, $functions, $hash];
 }