public function Renderer::renderPlain in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderPlain()
- 10 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderPlain()
Renders final HTML in situations where no assets are needed.
Calls ::render() in such a way that placeholders are replaced.
Useful for instance when rendering the values of tokens or emails, which need a render array being turned into a string, but do not need any of the bubbleable metadata (the attached assets and cache tags).
Some of these are a relatively common use case and happen *within* a ::renderRoot() call, but that is generally highly problematic (and hence an exception is thrown when a ::renderRoot() call happens within another ::renderRoot() call). However, in this case, we only care about the output, not about the bubbling. Hence this uses a separate render context, to not affect the parent ::renderRoot() call.
(Can be executed within another render context: it runs in isolation.)
Parameters
array $elements: The structured array describing the data to be rendered.
Return value
\Drupal\Component\Render\MarkupInterface The rendered HTML.
Overrides RendererInterface::renderPlain
See also
\Drupal\Core\Render\RendererInterface::renderRoot()
\Drupal\Core\Render\RendererInterface::render()
1 call to Renderer::renderPlain()
- Renderer::renderPlaceholder in core/
lib/ Drupal/ Core/ Render/ Renderer.php - Renders final HTML for a placeholder.
File
- core/
lib/ Drupal/ Core/ Render/ Renderer.php, line 154
Class
- Renderer
- Turns a render array into a HTML string.
Namespace
Drupal\Core\RenderCode
public function renderPlain(&$elements) {
return $this
->executeInRenderContext(new RenderContext(), function () use (&$elements) {
return $this
->render($elements, TRUE);
});
}