Documentation

NamespacePass extends CodeCleanerPass
in package

Provide implicit namespaces for subsequent execution.

The namespace pass remembers the last standalone namespace line encountered:

namespace Foo\Bar;

... which it then applies implicitly to all future evaluated code, until the namespace is replaced by another namespace. To reset to the top level namespace, enter namespace }. This is a bit ugly, but it does the trick :)

Table of Contents

$cleaner  : mixed
$namespace  : mixed
__construct()  : mixed
afterTraverse()  : null|array<string|int, Node>
Called once after traversal.
beforeTraverse()  : mixed
If this is a standalone namespace line, remember it for later.
enterNode()  : null|int|Node
Called when entering a node.
leaveNode()  : null|int|Node|array<string|int, Node>
Called when leaving a node.
setNamespace()  : mixed
Remember the namespace and (re)set the namespace on the CodeCleaner as well.

Properties

Methods

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

If this is a standalone namespace line, remember it for later.

public beforeTraverse(array<string|int, mixed> $nodes) : mixed

Otherwise, apply remembered namespaces to the code until a new namespace is encountered.

Parameters
$nodes : array<string|int, mixed>
Return values
mixed

enterNode()

Called when entering a node.

public enterNode(Node $node) : null|int|Node

Return value semantics:

  • null => $node stays as-is
  • NodeTraverser::DONT_TRAVERSE_CHILDREN => Children of $node are not traversed. $node stays as-is
  • NodeTraverser::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

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
  • NodeTraverser::REMOVE_NODE => $node is removed from the parent array
  • NodeTraverser::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)

setNamespace()

Remember the namespace and (re)set the namespace on the CodeCleaner as well.

private setNamespace(null|Name $namespace) : mixed
Parameters
$namespace : null|Name
Return values
mixed

Search results