NamespaceTreeBuilder
in package
implements
CompilerPassInterface
Rebuilds the namespace tree from the elements found in files.
On every compiler pass is the namespace tree rebuild to aid in the process of incremental updates. The Files Collection in the Project Descriptor is the only location where aliases to elements may be serialized.
If the namespace tree were to be persisted then both locations needed to be invalidated if a file were to change.
Interfaces, Classes and Traits
- CompilerPassInterface
- Represents a single pass / business rule to be executed by the Compiler.
Table of Contents
- COMPILER_PRIORITY = 9000
- execute() : void
- Executes a compiler pass.
- getDescription() : string
- Returns a textual description of what this pass does for output purposes.
- addElementsOfTypeToNamespace() : void
- Adds the given elements of a specific type to their respective Namespace Descriptors.
- addToParentNamespace() : void
Constants
COMPILER_PRIORITY
public
mixed
COMPILER_PRIORITY
= 9000
Methods
execute()
Executes a compiler pass.
public
execute(ProjectDescriptor $project) : void
This method will execute the business logic associated with a given compiler pass and allow it to manipulate or consumer the Object Graph using the ProjectDescriptor object.
Parameters
- $project : ProjectDescriptor
-
Representation of the Object Graph that can be manipulated.
Return values
void —getDescription()
Returns a textual description of what this pass does for output purposes.
public
getDescription() : string
Please note that the command line will be truncated to 68 characters (
Return values
string —addElementsOfTypeToNamespace()
Adds the given elements of a specific type to their respective Namespace Descriptors.
protected
addElementsOfTypeToNamespace(ProjectDescriptor $project, array<string|int, DescriptorAbstract> $elements, string $type) : void
This method will assign the given elements to the namespace as registered in the namespace field of that element. If a namespace does not exist yet it will automatically be created.
Parameters
- $project : ProjectDescriptor
- $elements : array<string|int, DescriptorAbstract>
-
Series of elements to add to their respective namespace.
- $type : string
-
Declares which field of the namespace will be populated with the given series of elements. This name will be transformed to a getter which must exist. Out of performance considerations will no effort be done to verify whether the provided type is valid.
Return values
void —addToParentNamespace()
private
addToParentNamespace(ProjectDescriptor $project, NamespaceDescriptor $namespace) : void
Parameters
- $project : ProjectDescriptor
- $namespace : NamespaceDescriptor