IncludeTreeSetupConditionConstantSubstitutionVisitor implements IncludeTreeVisitorInterface
Handle constants within (TS setup) conditions: When a conditional include is like this: '["{$foo.bar}" == "4711"]', this visitor looks up 'foo.bar in given (flattened) constants and substitutes it with the constant value.
The 'include' object then contains the substituted condition token for 'getConditionToken()', while the original token without the substitution is parked in 'getOriginalConditionToken()'. The latter is done to have the original token available in the backend to show, it is irrelevant in frontend.
Tags
Attributes
- #[Autoconfigure]
- $public: true
- $shared: false
Table of Contents
Interfaces
- IncludeTreeVisitorInterface
- A visitor that can be attached to IncludeTreeTraverser's.
Methods
- setFlattenedConstants() : void
- Must be set when adding this visitor, to an empty array at least.
- visit() : void
- Main visit method called for each node.
- visitBeforeChildren() : void
- Do the magic, see tests for details.
Methods
setFlattenedConstants()
Must be set when adding this visitor, to an empty array at least.
public
setFlattenedConstants(array<string, string> $flattenedConstants) : void
Will fatal otherwise, and that's fine, since if not setting this, this visitor is useless and shouldn't be added at all.
Parameters
- $flattenedConstants : array<string, string>
visit()
Main visit method called for each node.
public
visit(IncludeInterface $include, int $currentDepth) : void
Parameters
- $include : IncludeInterface
- $currentDepth : int
visitBeforeChildren()
Do the magic, see tests for details.
public
visitBeforeChildren(IncludeInterface $include, int $currentDepth) : void
Implementation within 'visitBeforeChildren()' since this allows running both this visitor first, and then IncludeTreeConditionMatcherVisitor directly afterward in the same traverser cycle!
Parameters
- $include : IncludeInterface
- $currentDepth : int