Represents a single pass / business rule to be executed by the Compiler.
This class is responsible for sending statistical information to the log.
For debugging purposes it can be convenient to send statistical information about the ProjectDescriptor to the log of phpDocumentor.
This class constructs the index 'elements' and populates it with all Structural Elements.
Please note that due to a conflict between namespace FQSEN's and that of classes, interfaces, traits and functions will the namespace FQSEN be prefixed with a tilde (~).
This index builder collects all examples from tags and inserts them into the example index.
This index builder collects all markers from tags and inserts them into the marker index.
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.
Rebuilds the package tree from the elements found in files.
On every compiler pass is the package tree rebuild to aid in the process of incremental updates.
If the package tree were to be persisted then both locations needed to be invalidated if a file were to change.
The linker contains all rules to replace FQSENs in the ProjectDescriptor with aliases to objects.
This object contains a list of class FQCNs for Descriptors and their associated linker rules.
An example scenario should be:
The Descriptor ``\phpDocumentor\Descriptor\ClassDescriptor`` has a *Substitute* rule determining that the contents of the ``Parent`` field should be substituted with another ClassDescriptor with the FQCN represented by the value of the Parent field. In addition (second element) it has an *Analyse* rule specifying that the contents of the ``Methods`` field should be interpreted by the linker. Because that field contains an array or Descriptor Collection will each element be analysed by the linker.
As can be seen in the above example is it possible to analyse a tree structure and substitute FQSENs where encountered.