You are here

public function Renderer::renderRoot in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderRoot()
  2. 9 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderRoot()

File

core/lib/Drupal/Core/Render/Renderer.php, line 135

Class

Renderer
Turns a render array into an 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;
}