PhpParser\NodeVisitor\NameResolver::resolveClassName PHP Method

resolveClassName() protected method

protected resolveClassName ( Name $name )
$name PhpParser\Node\Name
    protected function resolveClassName(Name $name) {
        if ($this->preserveOriginalNames) {
            // Save the original name
            $originalName = $name;
            $name = clone $originalName;
            $name->setAttribute('originalName', $originalName);
        }

        // don't resolve special class names
        if (in_array(strtolower($name->toString()), array('self', 'parent', 'static'))) {
            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;
        }

        $aliasName = strtolower($name->getFirst());
        if (!$name->isRelative() && isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName])) {
            // resolve aliases (for non-relative names)
            $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName];
            return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes());
        }

        // if no alias exists prepend current namespace
        return FullyQualified::concat($this->namespace, $name, $name->getAttributes());
    }

Usage Example

コード例 #1
0
ファイル: NameResolver.php プロジェクト: stefk/md
 protected function resolveClassName(Name $name)
 {
     if (!$name instanceof FullyQualified) {
         $name->setAttribute('resolvedFqcn', parent::resolveClassName($name));
     }
     return $name;
 }
All Usage Examples Of PhpParser\NodeVisitor\NameResolver::resolveClassName