function NameContext::getResolvedName
Get resolved name.
Parameters
Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_{FUNCTION|CONSTANT}:
Return value
null|Name Resolved name, or null if static resolution is not possible
1 call to NameContext::getResolvedName()
- NameContext::getResolvedClassName in vendor/
nikic/ php-parser/ lib/ PhpParser/ NameContext.php - Get resolved class name.
File
-
vendor/
nikic/ php-parser/ lib/ PhpParser/ NameContext.php, line 101
Class
Namespace
PhpParserCode
public function getResolvedName(Name $name, int $type) : ?Name {
// don't resolve special class names
if ($type === Stmt\Use_::TYPE_NORMAL && $name->isSpecialClassName()) {
if (!$name->isUnqualified()) {
$this->errorHandler
->handleError(new Error(sprintf("'\\%s' is an invalid class name", $name->toString()), $name->getAttributes()));
}
return $name;
}
// fully qualified names are already resolved
if ($name->isFullyQualified()) {
return $name;
}
// Try to resolve aliases
if (null !== ($resolvedName = $this->resolveAlias($name, $type))) {
return $resolvedName;
}
if ($type !== Stmt\Use_::TYPE_NORMAL && $name->isUnqualified()) {
if (null === $this->namespace) {
// outside of a namespace unaliased unqualified is same as fully qualified
return new FullyQualified($name, $name->getAttributes());
}
// Cannot resolve statically
return null;
}
// if no alias exists prepend current namespace
return FullyQualified::concat($this->namespace, $name, $name->getAttributes());
}