NameResolver
extends NodeVisitorAbstract
in package
Table of Contents
Properties
- $nameContext : NameContext
- $preserveOriginalNames : bool
- $replaceNodes : bool
Methods
- __construct() : mixed
- Constructs a name resolution visitor.
- afterTraverse() : null|array<string|int, Node>
- Called once after traversal.
- beforeTraverse() : null|array<string|int, Node>
- Called once before traversal.
- enterNode() : null|int|Node|array<string|int, Node>
- Called when entering a node.
- getNameContext() : NameContext
- Get name resolution context.
- leaveNode() : null|int|Node|array<string|int, Node>
- Called when leaving a node.
- addNamespacedName() : void
- resolveAttrGroups() : void
- resolveClassName() : Name
- resolveName() : Name
- Resolve name, according to name resolver options.
- addAlias() : void
- resolveSignature() : void
- resolveType() : T
Properties
$nameContext
protected
NameContext
$nameContext
Naming context
$preserveOriginalNames
protected
bool
$preserveOriginalNames
Whether to preserve original names
$replaceNodes
protected
bool
$replaceNodes
Whether to replace resolved nodes in place, or to add resolvedNode attributes
Methods
__construct()
Constructs a name resolution visitor.
public
__construct([ErrorHandler|null $errorHandler = null ][, array{preserveOriginalNames?: bool, replaceNodes?: bool} $options = [] ]) : mixed
Options:
- preserveOriginalNames (default false): An "originalName" attribute will be added to all name nodes that underwent resolution.
- replaceNodes (default true): Resolved names are replaced in-place. Otherwise, a resolvedName attribute is added. (Names that cannot be statically resolved receive a namespacedName attribute, as usual.)
Parameters
- $errorHandler : ErrorHandler|null = null
-
Error handler
- $options : array{preserveOriginalNames?: bool, replaceNodes?: bool} = []
-
Options
afterTraverse()
Called once after traversal.
public
afterTraverse(array<string|int, mixed> $nodes) : null|array<string|int, Node>
Return value semantics:
- null: $nodes stays as-is
- otherwise: $nodes is set to the return value
Parameters
- $nodes : array<string|int, mixed>
-
Array of nodes
Return values
null|array<string|int, Node> —Array of nodes
beforeTraverse()
Called once before traversal.
public
beforeTraverse(array<string|int, mixed> $nodes) : null|array<string|int, Node>
Return value semantics:
- null: $nodes stays as-is
- otherwise: $nodes is set to the return value
Parameters
- $nodes : array<string|int, mixed>
-
Array of nodes
Return values
null|array<string|int, Node> —Array of nodes
enterNode()
Called when entering a node.
public
enterNode(Node $node) : null|int|Node|array<string|int, Node>
Return value semantics:
- null => $node stays as-is
- array (of Nodes) => The return value is merged into the parent array (at the position of the $node)
- NodeVisitor::REMOVE_NODE => $node is removed from the parent array
- NodeVisitor::REPLACE_WITH_NULL => $node is replaced with null
- NodeVisitor::DONT_TRAVERSE_CHILDREN => Children of $node are not traversed. $node stays as-is
- NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN => Further visitors for the current node are skipped, and its children are not traversed. $node stays as-is.
- NodeVisitor::STOP_TRAVERSAL => Traversal is aborted. $node stays as-is
- otherwise => $node is set to the return value
Parameters
- $node : Node
-
Node
Return values
null|int|Node|array<string|int, Node> —Replacement node (or special return value)
getNameContext()
Get name resolution context.
public
getNameContext() : NameContext
Return values
NameContextleaveNode()
Called when leaving a node.
public
leaveNode(Node $node) : null|int|Node|array<string|int, Node>
Return value semantics:
- null => $node stays as-is
- NodeVisitor::REMOVE_NODE => $node is removed from the parent array
- NodeVisitor::REPLACE_WITH_NULL => $node is replaced with null
- NodeVisitor::STOP_TRAVERSAL => Traversal is aborted. $node stays as-is
- array (of Nodes) => The return value is merged into the parent array (at the position of the $node)
- otherwise => $node is set to the return value
Parameters
- $node : Node
-
Node
Return values
null|int|Node|array<string|int, Node> —Replacement node (or special return value)
addNamespacedName()
protected
addNamespacedName(Node $node) : void
Parameters
- $node : Node
resolveAttrGroups()
protected
resolveAttrGroups(Node $node) : void
Parameters
- $node : Node
resolveClassName()
protected
resolveClassName(Name $name) : Name
Parameters
- $name : Name
Return values
NameresolveName()
Resolve name, according to name resolver options.
protected
resolveName(Name $name, Use_::TYPE_* $type) : Name
Parameters
- $name : Name
-
Function or constant name to resolve
- $type : Use_::TYPE_*
-
One of Stmt\Use_::TYPE_*
Return values
Name —Resolved name, or original name with attribute
addAlias()
private
addAlias(UseItem $use, Use_::TYPE_* $type[, Name|null $prefix = null ]) : void
Parameters
resolveSignature()
private
resolveSignature(Function_|ClassMethod|Closure|ArrowFunction $node) : void
Parameters
- $node : Function_|ClassMethod|Closure|ArrowFunction
resolveType()
private
resolveType(T $node) : T
Parameters
- $node : T