Skip to content

Commit

Permalink
[NodeAnalyzer] Ensure mix annotation and attribute lookup finder on A…
Browse files Browse the repository at this point in the history
…ttrinationFinder::findManyBy* (#367)
  • Loading branch information
samsonasik authored Feb 16, 2025
1 parent 10aecf9 commit 33f8d9b
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions src/NodeAnalyzer/AttrinationFinder.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,12 @@ public function hasByOne(Property|Class_|ClassMethod|Param $node, string $name):
public function findManyBy(Property|Class_|ClassMethod|Param $node, string $name): array
{
$phpDocInfo = $this->phpDocInfoFactory->createFromNode($node);
$doctrineAnnotationTagValueNodes = [];
if ($phpDocInfo instanceof PhpDocInfo) {
$doctrineAnnotationTagValueNodes = $phpDocInfo->findByAnnotationClass($name);
if ($doctrineAnnotationTagValueNodes !== []) {
return $doctrineAnnotationTagValueNodes;
}
}

return $this->attributeFinder->findManyByClass($node, $name);
return array_merge($doctrineAnnotationTagValueNodes, $this->attributeFinder->findManyByClass($node, $name));
}

/**
Expand All @@ -70,19 +68,20 @@ public function findManyBy(Property|Class_|ClassMethod|Param $node, string $name
public function findManyByMany(Property|Class_|ClassMethod|Param $node, array $names): array
{
$phpDocInfo = $this->phpDocInfoFactory->createFromNode($node);
if ($phpDocInfo instanceof PhpDocInfo) {
$doctrineAnnotationTagValueNodes = [];
$doctrineAnnotationTagValueNodes = [];

if ($phpDocInfo instanceof PhpDocInfo) {
foreach ($names as $name) {
foreach ($phpDocInfo->findByAnnotationClass($name) as $annotationTagValueNode) {
$doctrineAnnotationTagValueNodes[] = $annotationTagValueNode;
}
}

return $doctrineAnnotationTagValueNodes;
}

return $this->attributeFinder->findManyByClasses($node, $names);
return array_merge(
$doctrineAnnotationTagValueNodes,
$this->attributeFinder->findManyByClasses($node, $names)
);
}

/**
Expand Down

0 comments on commit 33f8d9b

Please sign in to comment.