示例#1
0
 private function registerReflectors(InterfaceReflector $reflector)
 {
     if (!$this->reflector) {
         $this->reflector = $reflector;
     }
     $loader = $this->autoLoader;
     /**
      * @var $method MethodReflector
      */
     $reflector->getName();
     foreach ($reflector->getMethods() as $method) {
         $this->data['methods'][$method->getShortName()][] = $method;
     }
     if ($reflector instanceof ClassReflector || $reflector instanceof TraitReflector) {
         if ($parent = $reflector->getParentClass()) {
             $filename = $loader($parent);
             if (is_readable($filename)) {
                 $parser = $this->parserFactory->newInstance($filename, $loader);
                 $this->data = array_merge_recursive($this->data, $parser->getData());
             }
         }
         if ($traits = $reflector->getTraits()) {
             foreach ($traits as $trait) {
                 $filename = $loader($trait);
                 if (is_readable($filename)) {
                     $parser = $this->parserFactory->newInstance($filename, $loader);
                     $this->data = array_merge_recursive($this->data, $parser->getData());
                 }
             }
         }
     }
     if (method_exists($reflector, 'getInterfaces')) {
         foreach ($reflector->getInterfaces() as $interface) {
             $filename = $loader($interface);
             if (is_readable($filename)) {
                 $parser = $this->parserFactory->newInstance($filename, $loader);
                 $this->data = array_merge_recursive($this->data, $parser->getData());
             }
         }
     }
 }