protected function evaluateObjectOrRetrieveFromCache($typoScriptObject, $typoScriptPath, $typoScriptConfiguration, $cacheContext)
{
$output = null;
$evaluationStatus = self::EVALUATION_SKIPPED;
list($cacheHit, $cachedResult) = $this->runtimeContentCache->preEvaluate($cacheContext, $typoScriptObject);
if ($cacheHit) {
return $cachedResult;
}
$evaluateObject = true;
if ($this->evaluateIfCondition($typoScriptConfiguration, $typoScriptPath, $typoScriptObject) === false) {
$evaluateObject = false;
}
if ($evaluateObject) {
$output = $typoScriptObject->evaluate();
$evaluationStatus = self::EVALUATION_EXECUTED;
}
$this->lastEvaluationStatus = $evaluationStatus;
if ($evaluateObject) {
$output = $this->evaluateProcessors($output, $typoScriptConfiguration, $typoScriptPath, $typoScriptObject);
}
$output = $this->runtimeContentCache->postProcess($cacheContext, $typoScriptObject, $output);
return $output;
}