diff core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,62 @@
+<?php
+
+namespace Drupal\Core\Render;
+
+/**
+ * Bare HTML page renderer.
+ *
+ * By "bare HTML page", we mean that the following hooks that allow for "normal"
+ * pages are not invoked:
+ * - hook_page_attachments()
+ * - hook_page_attachments_alter()
+ * - hook_page_top()
+ * - hook_page_bottom()
+ *
+ * Examples of bare HTML pages are:
+ * - install.php
+ * - update.php
+ * - authorize.php
+ * - maintenance mode
+ * - exception handlers
+ *
+ * i.e. use this when rendering HTML pages in limited environments. Otherwise,
+ * use a @code _controller @endcode 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 a 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:
+ * - Install (hook_preprocess_install_page(), install-page.html.twig).
+ * - Maintenance (hook_preprocess_maintenance_page(),
+ *   maintenance-page.html.twig).
+ *
+ * @see \Drupal\Core\Render\MainContent\HtmlRenderer
+ */
+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 = []);
+
+}