Documentation

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

$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)

leaveNode()

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)

resolveName()

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
$use : UseItem
$type : Use_::TYPE_*
$prefix : Name|null = null

resolveType()

private resolveType(T $node) : T
Parameters
$node : T
Tags
template

T of Node\Identifier|Name|Node\ComplexType|null

Return values
T

        
On this page

Search results