Skip to content

Commit ec5b633

Browse files
committed
DependencyResolver - @method, @property, @extends, @implements tags
1 parent be6e7ce commit ec5b633

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

src/Dependency/DependencyResolver.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,59 @@ private function addClassToDependencies(string $className, array &$dependenciesR
363363
}
364364
}
365365

366+
foreach ($classReflection->getPropertyTags() as $propertyTag) {
367+
foreach ($propertyTag->getType()->getReferencedClasses() as $referencedClass) {
368+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
369+
continue;
370+
}
371+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
372+
}
373+
}
374+
375+
foreach ($classReflection->getMethodTags() as $methodTag) {
376+
foreach ($methodTag->getReturnType()->getReferencedClasses() as $referencedClass) {
377+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
378+
continue;
379+
}
380+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
381+
}
382+
foreach ($methodTag->getParameters() as $parameter) {
383+
foreach ($parameter->getType()->getReferencedClasses() as $referencedClass) {
384+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
385+
continue;
386+
}
387+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
388+
}
389+
if ($parameter->getDefaultValue() === null) {
390+
continue;
391+
}
392+
foreach ($parameter->getDefaultValue()->getReferencedClasses() as $referencedClass) {
393+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
394+
continue;
395+
}
396+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
397+
}
398+
}
399+
}
400+
401+
foreach ($classReflection->getExtendsTags() as $extendsTag) {
402+
foreach ($extendsTag->getType()->getReferencedClasses() as $referencedClass) {
403+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
404+
continue;
405+
}
406+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
407+
}
408+
}
409+
410+
foreach ($classReflection->getImplementsTags() as $implementsTag) {
411+
foreach ($implementsTag->getType()->getReferencedClasses() as $referencedClass) {
412+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
413+
continue;
414+
}
415+
$dependenciesReflections[] = $this->reflectionProvider->getClass($referencedClass);
416+
}
417+
}
418+
366419
$classReflection = $classReflection->getParentClass();
367420
} while ($classReflection !== null);
368421
}

0 commit comments

Comments
 (0)