*/
private $fullyQualifiedNameByHash = [];
public function __construct(UseImportNameMatcher $useImportNameMatcher, UseImportsResolver $useImportsResolver, ReflectionProvider $reflectionProvider)
{
$this->useImportNameMatcher = $useImportNameMatcher;
$this->useImportsResolver = $useImportsResolver;
$this->reflectionProvider = $reflectionProvider;
}
public function resolveTagFullyQualifiedName(string $tag, Node $node) : string
{
$uniqueId = $tag . \spl_object_id($node);
if (isset($this->fullyQualifiedNameByHash[$uniqueId])) {
return $this->fullyQualifiedNameByHash[$uniqueId];
}
$tag = \ltrim($tag, '@');
$uses = $this->useImportsResolver->resolve();
$fullyQualifiedClass = $this->resolveFullyQualifiedClass($uses, $node, $tag);
if ($fullyQualifiedClass === null) {
$fullyQualifiedClass = $tag;
}
$this->fullyQualifiedNameByHash[$uniqueId] = $fullyQualifiedClass;
return $fullyQualifiedClass;
}
/**
* @param array