/** * @param BooleanNode $node * @return array * @see convert() */ protected function convertBooleanNode(BooleanNode $node) { $stack = $this->convertArrayNode(new ArrayNode($node->getStack())); $initializationPhpCode = '// Rendering Boolean node' . chr(10); $initializationPhpCode .= $stack['initialization'] . chr(10); $parser = new BooleanParser(); $compiledExpression = $parser->compile(BooleanNode::reconcatenateExpression($node->getStack())); $functionName = $this->variableName('expression'); $initializationPhpCode .= $functionName . ' = function($context) {return ' . $compiledExpression . ';};' . chr(10); return array('initialization' => $initializationPhpCode, 'execution' => sprintf('%s::convertToBoolean( %s( %s::gatherContext($renderingContext, %s) ), $renderingContext )', BooleanNode::class, $functionName, BooleanNode::class, $stack['execution'])); }
/** * @param BooleanNode $node * @return array * @see convert() */ protected function convertBooleanNode(BooleanNode $node) { $stack = $this->convertArrayNode(new ArrayNode($node->getStack())); $initializationPhpCode = '// Rendering Boolean node' . chr(10); $initializationPhpCode = $stack['initialization'] . chr(10); return array('initialization' => $initializationPhpCode, 'execution' => sprintf('\\TYPO3Fluid\\Fluid\\Core\\Parser\\SyntaxTree\\BooleanNode::evaluateStack($renderingContext, %s)', $stack['execution'])); }