CaseImplementation
class CaseImplementation extends JoinImplementation (View source)
Case Fusion Object
The "case" Fusion object renders its children in order. The first result which is not MATCH_NORESULT is returned.
Often, this Fusion object is used together with the "Matcher" Fusion object; and all its children are by-default interpreted as "Matcher" Fusion objects if no others are specified.
Constants
MATCH_NORESULT |
This constant should be returned by individual matchers if the matcher
did not match. You should not rely on the contents or type of this constant. |
Properties
protected Runtime | $runtime | from AbstractFusionObject | |
protected string | $path | The Fusion path currently being rendered |
from AbstractFusionObject |
protected string | $fusionObjectName | Name of this Fusion object, like Neos.Neos:Text |
from AbstractFusionObject |
protected array | $fusionValueCache | from AbstractFusionObject | |
protected array internal | $properties | List of properties which have been set using array access. We store this for every Fusion object in order to do things like: x = Foo { a = 'foo' b = ${this.a + 'bar'} } |
from AbstractArrayFusionObject |
protected array | $ignoreProperties | If you iterate over "properties" these in here should usually be ignored. For example additional properties in "Case" that are not "Matchers". |
from AbstractArrayFusionObject |
Methods
Execute each matcher until the first one matches
Return the Fusion value relative to this Fusion object (with processors etc applied).
No description
Sort the Fusion objects inside $this->properties depending on:
- numerical ordering
- position meta-property
Render the given matcher
Test whether the output of the matcher does not equal the MATCH_NORESULT
Details
__construct(Runtime $runtime, string $path, string $fusionObjectName)
Constructor
mixed
evaluate()
Execute each matcher until the first one matches
Runtime
getRuntime()
Get the Fusion runtime this object was created in.
protected mixed
fusionValue(string $path)
Return the Fusion value relative to this Fusion object (with processors etc applied).
Note that subsequent calls of fusionValue() with the same Fusion path will return the same values since the first evaluated value will be cached in memory.
bool
offsetExists(mixed $offset)
No description
mixed
offsetGet(mixed $offset)
No description
void
offsetSet(mixed $offset, mixed $value)
No description
void
offsetUnset(mixed $offset)
No description
void
setIgnoreProperties(array $ignoreProperties = [])
No description
protected array
sortNestedFusionKeys()
Sort the Fusion objects inside $this->properties depending on:
- numerical ordering
- position meta-property
This will ignore all properties defined in "@ignoreProperties" in Fusion
string
getGlue()
Get the glue to insert between items
protected string
renderMatcher(string $matcherKey)
Render the given matcher
A result value of MATCH_NORESULT means that the condition of the matcher did not match and the case should continue.
protected bool
matcherMatched(string $renderedMatcher)
Test whether the output of the matcher does not equal the MATCH_NORESULT
If the debug mode is enabled, we have to strip the debug output before comparing the rendered result.