class BareHtmlPageRenderer

Same name in this branch
  1. 11.x core/lib/Drupal/Core/ProxyClass/Render/BareHtmlPageRenderer.php \Drupal\Core\ProxyClass\Render\BareHtmlPageRenderer
Same name in other branches
  1. 9 core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php \Drupal\Core\Render\BareHtmlPageRenderer
  2. 9 core/lib/Drupal/Core/ProxyClass/Render/BareHtmlPageRenderer.php \Drupal\Core\ProxyClass\Render\BareHtmlPageRenderer
  3. 8.9.x core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php \Drupal\Core\Render\BareHtmlPageRenderer
  4. 8.9.x core/lib/Drupal/Core/ProxyClass/Render/BareHtmlPageRenderer.php \Drupal\Core\ProxyClass\Render\BareHtmlPageRenderer
  5. 10 core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php \Drupal\Core\Render\BareHtmlPageRenderer
  6. 10 core/lib/Drupal/Core/ProxyClass/Render/BareHtmlPageRenderer.php \Drupal\Core\ProxyClass\Render\BareHtmlPageRenderer

Default bare HTML page renderer.

Hierarchy

Expanded class hierarchy of BareHtmlPageRenderer

File

core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php, line 8

Namespace

Drupal\Core\Render
View source
class BareHtmlPageRenderer implements BareHtmlPageRendererInterface {
    
    /**
     * The renderer service.
     *
     * @var \Drupal\Core\Render\Renderer
     */
    protected $renderer;
    
    /**
     * The HTML response attachments processor service.
     *
     * @var \Drupal\Core\Render\AttachmentsResponseProcessorInterface
     */
    protected $htmlResponseAttachmentsProcessor;
    
    /**
     * Constructs a new BareHtmlPageRenderer.
     *
     * @param \Drupal\Core\Render\RendererInterface $renderer
     *   The renderer service.
     * @param \Drupal\Core\Render\AttachmentsResponseProcessorInterface $html_response_attachments_processor
     *   The HTML response attachments processor service.
     */
    public function __construct(RendererInterface $renderer, AttachmentsResponseProcessorInterface $html_response_attachments_processor) {
        $this->renderer = $renderer;
        $this->htmlResponseAttachmentsProcessor = $html_response_attachments_processor;
    }
    
    /**
     * {@inheritdoc}
     */
    public function renderBarePage(array $content, $title, $page_theme_property, array $page_additions = []) {
        $attributes = [
            'class' => [
                str_replace('_', '-', $page_theme_property),
            ],
        ];
        $html = [
            '#type' => 'html',
            '#attributes' => $attributes,
            'page' => [
                '#type' => 'page',
                '#theme' => $page_theme_property,
                '#title' => $title,
                'content' => $content,
            ] + $page_additions,
        ];
        // For backwards compatibility.
        // @todo In Drupal 9, add a $show_messages function parameter.
        if (!isset($page_additions['#show_messages']) || $page_additions['#show_messages'] === TRUE) {
            $html['page']['highlighted'] = [
                '#type' => 'status_messages',
            ];
        }
        // Add the bare minimum of attachments from the system module and the
        // current maintenance theme.
        system_page_attachments($html['page']);
        $this->renderer
            ->renderRoot($html);
        $response = new HtmlResponse();
        $response->setContent($html);
        // Process attachments, because this does not go via the regular render
        // pipeline, but will be sent directly.
        $response = $this->htmlResponseAttachmentsProcessor
            ->processAttachments($response);
        return $response;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
BareHtmlPageRenderer::$htmlResponseAttachmentsProcessor protected property The HTML response attachments processor service.
BareHtmlPageRenderer::$renderer protected property The renderer service.
BareHtmlPageRenderer::renderBarePage public function Renders a bare page. Overrides BareHtmlPageRendererInterface::renderBarePage
BareHtmlPageRenderer::__construct public function Constructs a new BareHtmlPageRenderer.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.