| Current Path : /var/www/surf/TYPO3/vendor/typo3fluid/fluid/src/Core/ViewHelper/Traits/ |
| Current File : /var/www/surf/TYPO3/vendor/typo3fluid/fluid/src/Core/ViewHelper/Traits/CompileWithRenderStatic.php |
<?php
/*
* This file belongs to the package "TYPO3 Fluid".
* See LICENSE.txt that was shipped with this package.
*/
namespace TYPO3Fluid\Fluid\Core\ViewHelper\Traits;
use TYPO3Fluid\Fluid\Core\Compiler\TemplateCompiler;
use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode;
/**
* Class CompilableWithRenderStatic
*
* Provides default methods for rendering and compiling
* any ViewHelper that conforms to the `renderStatic`
* method pattern.
*/
trait CompileWithRenderStatic
{
/**
* Default render method - simply calls renderStatic() with a
* prepared set of arguments.
*
* @return mixed Rendered result
* @api
*/
public function render()
{
return static::renderStatic(
$this->arguments,
$this->buildRenderChildrenClosure(),
$this->renderingContext
);
}
/**
* @return \Closure
*/
abstract protected function buildRenderChildrenClosure();
/**
* @param string $argumentsName
* @param string $closureName
* @param string $initializationPhpCode
* @param ViewHelperNode $node
* @param TemplateCompiler $compiler
* @return string
*/
public function compile(
$argumentsName,
$closureName,
&$initializationPhpCode,
ViewHelperNode $node,
TemplateCompiler $compiler
) {
return sprintf(
'%s::renderStatic(%s, %s, $renderingContext)',
static::class,
$argumentsName,
$closureName
);
}
}