TwigRendererEngine
class TwigRendererEngine extends AbstractRendererEngine
Constants
CACHE_KEY_VAR |
The variable in {@link FormView} used as cache key. |
Properties
protected | $defaultThemes | from AbstractRendererEngine | |
protected | $themes | from AbstractRendererEngine | |
protected | $useDefaultThemes | from AbstractRendererEngine | |
protected | $resources | from AbstractRendererEngine |
Methods
Creates a new renderer engine.
Returns the resource for a block hierarchy.
Returns the hierarchy level at which a resource can be found.
Loads the cache with the resource for a given block name.
Renders a block in the given renderer resource.
Loads the resources for all blocks in a theme.
Details
setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true)
Sets the theme(s) to be used for rendering a view and its children.
mixed
getResourceForBlockName(FormView $view, string $blockName)
Returns the resource for a block name.
The resource is first searched in the themes attached to $view, then in the themes of its parent view and so on, until a resource was found.
The type of the resource is decided by the implementation. The resource is later passed to {@link renderBlock()} by the rendering algorithm.
mixed
getResourceForBlockNameHierarchy(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)
Returns the resource for a block hierarchy.
A block hierarchy is an array which starts with the root of the hierarchy and continues with the child of that root, the child of that child etc. The following is an example for a block hierarchy:
form_widget
text_widget
url_widget
In this example, "url_widget" is the most specific block, while the other blocks are its ancestors in the hierarchy.
The second parameter $hierarchyLevel determines the level of the hierarchy that should be rendered. For example, if $hierarchyLevel is 2 for the above hierarchy, the engine will first look for the block "url_widget", then, if that does not exist, for the block "text_widget" etc.
The type of the resource is decided by the implementation. The resource is later passed to {@link renderBlock()} by the rendering algorithm.
int|bool
getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)
Returns the hierarchy level at which a resource can be found.
A block hierarchy is an array which starts with the root of the hierarchy and continues with the child of that root, the child of that child etc. The following is an example for a block hierarchy:
form_widget
text_widget
url_widget
The second parameter $hierarchyLevel determines the level of the hierarchy that should be rendered.
If we call this method with the hierarchy level 2, the engine will first look for a resource for block "url_widget". If such a resource exists, the method returns 2. Otherwise it tries to find a resource for block "text_widget" (at level 1) and, again, returns 1 if a resource was found. The method continues to look for resources until the root level was reached and nothing was found. In this case false is returned.
The type of the resource is decided by the implementation. The resource is later passed to {@link renderBlock()} by the rendering algorithm.
protected bool
loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName)
Loads the cache with the resource for a given block name.
This implementation eagerly loads all blocks of the themes assigned to the given view and all of its ancestors views. This is necessary, because Twig receives the list of blocks later. At that point, all blocks must already be loaded, for the case that the function "block()" is used in the Twig template.
string
renderBlock(FormView $view, mixed $resource, string $blockName, array $variables = array())
Renders a block in the given renderer resource.
The resource can be obtained by calling {@link getResourceForBlock()} or {@link getResourceForBlockHierarchy()}. The type of the resource is decided by the implementation.