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
$cleaner
private
mixed
$cleaner
$namespace
private
mixed
$namespace
= null
Methods
__construct()
public
__construct(CodeCleaner $cleaner) : mixed
Parameters
- $cleaner : CodeCleaner
Return values
mixed —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