Neos\Fusion\Core\Runtime::evaluateProcessors PHP Method

evaluateProcessors() protected method

Evaluate processors on given value.
protected evaluateProcessors ( mixed $valueToProcess, array $configurationWithEventualProcessors, string $typoScriptPath, AbstractTypoScriptObject $contextObject = null ) : mixed
$valueToProcess mixed
$configurationWithEventualProcessors array
$typoScriptPath string
$contextObject Neos\Fusion\TypoScriptObjects\AbstractTypoScriptObject
return mixed
    protected function evaluateProcessors($valueToProcess, $configurationWithEventualProcessors, $typoScriptPath, AbstractTypoScriptObject $contextObject = null)
    {
        if (isset($configurationWithEventualProcessors['__meta']['process'])) {
            $processorConfiguration = $configurationWithEventualProcessors['__meta']['process'];
            $positionalArraySorter = new PositionalArraySorter($processorConfiguration, '__meta.position');
            foreach ($positionalArraySorter->getSortedKeys() as $key) {
                $processorPath = $typoScriptPath . '/__meta/process/' . $key;
                if ($this->evaluateIfCondition($processorConfiguration[$key], $processorPath, $contextObject) === false) {
                    continue;
                }
                if (isset($processorConfiguration[$key]['expression'])) {
                    $processorPath .= '/expression';
                }
                $this->pushContext('value', $valueToProcess);
                $result = $this->evaluateInternal($processorPath, self::BEHAVIOR_EXCEPTION, $contextObject);
                if ($this->getLastEvaluationStatus() !== static::EVALUATION_SKIPPED) {
                    $valueToProcess = $result;
                }
                $this->popContext();
            }
        }
        return $valueToProcess;
    }