public Renderer::renderRoot(&$elements)
Renders final HTML given a structured array tree.
Calls ::render() in such a way that placeholders are replaced.
Should therefore only be used in occasions where the final rendering is happening, just before sending a Response:
- system internals that are responsible for rendering the final HTML
- render arrays for non-HTML responses, such as feeds
(Cannot be executed within another render context.)
Parameters
array $elements: The structured array describing the data to be rendered.
Return value
\Drupal\Component\Render\MarkupInterface The rendered HTML.
Throws
\LogicException When called from inside another renderRoot() call.
Overrides RendererInterface::renderRoot
See also
\Drupal\Core\Render\RendererInterface::render()
File
- core/lib/Drupal/Core/Render/Renderer.php, line 129
Class
- Renderer
- Turns a render array into a HTML string.
Namespace
Drupal\Core\Render
Code
public function renderRoot(&$elements) { // Disallow calling ::renderRoot() from within another ::renderRoot() call. if ($this->isRenderingRoot) { $this->isRenderingRoot = FALSE; throw new \LogicException('A stray renderRoot() invocation is causing bubbling of attached assets to break.'); } // Render in its own render context. $this->isRenderingRoot = TRUE; $output = $this->executeInRenderContext(new RenderContext(), function() use (&$elements) { return $this->render($elements, TRUE); }); $this->isRenderingRoot = FALSE; return $output; }
Please login to continue.