Beispiel #1
0
 /**
  * @param string   $actualNamespace
  * @param array    $definition
  * @param array    $use
  * @param array    $classes
  * @param DocBlock $phpdoc
  *
  * @return array
  */
 private function findReturnTag($phpdoc = null, array $definition, ClassMetadata $classMetadata, ClassMethod $node)
 {
     $implements = $classMetadata->getImplements();
     if (is_array($implements) === true) {
         foreach ($implements as $implement) {
             foreach ($this->classCollector->getCollected() as $className => $classInfo) {
                 if ($classMetadata->getNamespace() . '\\' . $implement === $className) {
                     try {
                         $phpdoc = $this->nodeToDocBlock($this->findMethod($classInfo, $node->name));
                     } catch (\InvalidArgumentException $e) {
                     }
                 }
                 foreach ($classMetadata->getClasses() as $use) {
                     if ($use . '/' . $implement === $className) {
                         try {
                             $phpdoc = $this->nodeToDocBlock($this->findMethod($classInfo, $node->name));
                         } catch (\InvalidArgumentException $e) {
                         }
                     }
                 }
             }
         }
     }
     if ($phpdoc !== null) {
         foreach ($phpdoc->getTags() as $tag) {
             if ($this->isReturnTag($tag) === true) {
                 $definition['return'] = array('type' => $this->findType($tag));
                 break;
             }
         }
     }
     return $definition;
 }
 /**
  * @param ClassMetadata $metadata
  * @param ClassCollector $classCollector
  */
 private function implementsExist(ClassMetadata $metadata, ClassCollector $classCollector)
 {
     foreach ($metadata->getImplements() as $implements) {
         $this->implementExist($metadata, $classCollector, $implements);
     }
 }