W3cubDocs

/Symfony 4.1

TemplatingRendererEngine

class TemplatingRendererEngine 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

__construct(EngineInterface $engine, array $defaultThemes = array())

Creates a new renderer engine.

setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true)

Sets the theme(s) to be used for rendering a view and its children.

from AbstractRendererEngine
mixed getResourceForBlockName(FormView $view, string $blockName)

Returns the resource for a block name.

from AbstractRendererEngine
mixed getResourceForBlockNameHierarchy(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)

Returns the resource for a block hierarchy.

from AbstractRendererEngine
int|bool getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)

Returns the hierarchy level at which a resource can be found.

from AbstractRendererEngine
bool loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName)

Loads the cache with the resource for a given block name.

string renderBlock(FormView $view, mixed $resource, string $blockName, array $variables = array())

Renders a block in the given renderer resource.

bool loadResourceFromTheme(string $cacheKey, string $blockName, mixed $theme)

Tries to load the resource for a block from a theme.

Details

__construct(EngineInterface $engine, array $defaultThemes = array())

Creates a new renderer engine.

Parameters

EngineInterface $engine
array $defaultThemes The default themes. The type of these themes is open to the implementation.

setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true)

Sets the theme(s) to be used for rendering a view and its children.

Parameters

FormView $view The view to assign the theme(s) to
mixed $themes The theme(s). The type of these themes is open to the implementation.
bool $useDefaultThemes If true, will use default themes specified in the engine

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.

Parameters

FormView $view the view for determining the used themes. First the themes attached directly to the view with {@link setTheme()} are considered, then the ones of its parent etc
string $blockName The name of the block to render

Return Value

mixed the renderer resource or false, if none was found

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.

Parameters

FormView $view the view for determining the used themes. First the themes attached directly to the view with {@link setTheme()} are considered, then the ones of its parent etc
array $blockNameHierarchy The block name hierarchy, with the root block at the beginning
int $hierarchyLevel The level in the hierarchy at which to start looking. Level 0 indicates the root block, i.e. the first element of $blockNameHierarchy.

Return Value

mixed The renderer resource or false, if none was found

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.

Parameters

FormView $view the view for determining the used themes. First the themes attached directly to the view with {@link setTheme()} are considered, then the ones of its parent etc
array $blockNameHierarchy The block name hierarchy, with the root block at the beginning
int $hierarchyLevel The level in the hierarchy at which to start looking. Level 0 indicates the root block, i.e. the first element of $blockNameHierarchy.

Return Value

int|bool The hierarchy level or false, if no resource was found

protected bool loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName)

Loads the cache with the resource for a given block name.

This implementation tries to load as few blocks as possible, since each block is represented by a template on the file system.

Parameters

string $cacheKey The cache key of the form view
FormView $view The form view for finding the applying themes
string $blockName The name of the block to load

Return Value

bool True if the resource could be loaded, false otherwise

See also

getResourceForBlock()

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.

Parameters

FormView $view The view to render
mixed $resource The renderer resource
string $blockName The name of the block to render
array $variables The variables to pass to the template

Return Value

string The HTML markup

protected bool loadResourceFromTheme(string $cacheKey, string $blockName, mixed $theme)

Tries to load the resource for a block from a theme.

Parameters

string $cacheKey The cache key for storing the resource
string $blockName The name of the block to load a resource for
mixed $theme The theme to load the block from

Return Value

bool True if the resource could be loaded, false otherwise