IncludeTreeConditionMatcherVisitor implements IncludeTreeVisitorInterface, LoggerAwareInterface uses LoggerAwareTrait
A visitor that looks at IncludeConditionInterface nodes and evaluates their conditions.
Condition matching is done in visitBeforeChildren() to be used in combination with ConditionVerdictAwareIncludeTreeTraverser, so children are only traversed for conditions that evaluated true.
Tags
Attributes
- #[Autoconfigure]
- $public: true
- $shared: false
Table of Contents
Interfaces
- IncludeTreeVisitorInterface
- A visitor that can be attached to IncludeTreeTraverser's.
- LoggerAwareInterface
Methods
- __construct() : mixed
- getConditionListWithVerdicts() : array<string|int, mixed>
- A list of all handled conditions with their verdicts.
- initializeExpressionMatcherWithVariables() : void
- Prepare the core expression language Resolver class - our API to symfony expression language - for typoscript context usage.
- visit() : void
- Main visit method called for each node.
- visitBeforeChildren() : void
- Let symfony expression language handle the expression, gather expressions that have been handled since they influence page caching, negate expression verdicts if they're a [else] expression.
Methods
__construct()
    public
                    __construct(Context $context, PageLayoutResolver $pageLayoutResolver) : mixed
    Parameters
- $context : Context
- $pageLayoutResolver : PageLayoutResolver
getConditionListWithVerdicts()
A list of all handled conditions with their verdicts.
    public
                    getConditionListWithVerdicts() : array<string|int, mixed>
    This is used in FE since condition verdicts influence page caches.
Return values
array<string|int, mixed>initializeExpressionMatcherWithVariables()
Prepare the core expression language Resolver class - our API to symfony expression language - for typoscript context usage.
    public
                    initializeExpressionMatcherWithVariables(array<string|int, mixed> $variables) : void
    The method gets a series of variables hand over coming from caller scope like rootline, page array and eventually a request object. These vars are munged around a bit and enriched with a series of semi-static state variables: Things that can be injected like derived from context, for example frontend / backend user, workspace and similar. This ensures all typoscript 'conditions' receive similar structured data.
Parameters
- $variables : array<string|int, mixed>
visit()
Main visit method called for each node.
    public
                    visit(IncludeInterface $include, int $currentDepth) : void
    Parameters
- $include : IncludeInterface
- $currentDepth : int
visitBeforeChildren()
Let symfony expression language handle the expression, gather expressions that have been handled since they influence page caching, negate expression verdicts if they're a [else] expression.
    public
                    visitBeforeChildren(IncludeInterface $include, int $currentDepth) : void
    Parameters
- $include : IncludeInterface
- $currentDepth : int