interface BareHtmlPageRendererInterface

Same name in other branches
  1. 8.9.x core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php \Drupal\Core\Render\BareHtmlPageRendererInterface
  2. 10 core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php \Drupal\Core\Render\BareHtmlPageRendererInterface
  3. 11.x core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php \Drupal\Core\Render\BareHtmlPageRendererInterface

Bare HTML page renderer.

By "bare HTML page", we mean that the following hooks that allow for "normal" pages are not invoked:

Examples of bare HTML pages are:

i.e. use this when rendering HTML pages in limited environments. Otherwise, use a

_controller;

route, and return a render array. This will cause a main content renderer (\Drupal\Core\Render\MainContent\MainContentRendererInterface) to be used, and in case of an HTML request that will be \Drupal\Core\Render\MainContent\HtmlRenderer.

In fact, this is not only *typically* used in a limited environment, it even *must* be used in a limited environment: when using the bare HTML page renderer, use as little state/additional services as possible, because the same safeguards aren't present (precisely because this is intended to be used in a limited environment).

Currently, there are two types of bare pages available:

Hierarchy

Expanded class hierarchy of BareHtmlPageRendererInterface

All classes that implement BareHtmlPageRendererInterface

See also

\Drupal\Core\Render\MainContent\HtmlRenderer

4 files declare their use of BareHtmlPageRendererInterface
DbUpdateController.php in core/modules/system/src/Controller/DbUpdateController.php
MaintenanceModeSubscriber.php in core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
UserLoginForm.php in core/modules/user/src/Form/UserLoginForm.php
UserLoginFormTest.php in core/modules/user/tests/src/Kernel/Form/UserLoginFormTest.php

File

core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php, line 42

Namespace

Drupal\Core\Render
View source
interface BareHtmlPageRendererInterface {
    
    /**
     * Renders a bare page.
     *
     * @param array $content
     *   The main content to render in the 'content' region.
     * @param string $title
     *   The title for this maintenance page.
     * @param string $page_theme_property
     *   The #theme property to set on #type 'page'.
     * @param array $page_additions
     *   Additional regions to add to the page. May also be used to pass the
     *   #show_messages property for #type 'page'.
     *
     * @return \Drupal\Core\Render\HtmlResponse
     *   The rendered HTML response, ready to be sent.
     */
    public function renderBarePage(array $content, $title, $page_theme_property, array $page_additions = []);

}

Members

Title Sort descending Modifiers Object type Summary Overrides
BareHtmlPageRendererInterface::renderBarePage public function Renders a bare page. 2

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