diff core/lib/Drupal/Core/Render/RenderCacheInterface.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/RenderCacheInterface.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,73 @@
+<?php
+
+namespace Drupal\Core\Render;
+
+/**
+ * Defines an interface for caching rendered render arrays.
+ *
+ * @internal
+ *
+ * @see sec_caching
+ * @see \Drupal\Core\Render\RendererInterface
+ */
+interface RenderCacheInterface {
+
+  /**
+   * Gets a cacheable render array for a render array and its rendered output.
+   *
+   * Given a render array and its rendered output (HTML string), return an array
+   * data structure that allows the render array and its associated metadata to
+   * be cached reliably (and is serialization-safe).
+   *
+   * If Drupal needs additional rendering metadata to be cached at some point,
+   * consumers of this method will continue to work. Those who only cache
+   * certain parts of a render array will cease to work.
+   *
+   * @param array $elements
+   *   A render array, on which \Drupal\Core\Render\RendererInterface::render()
+   *   has already been invoked.
+   *
+   * @return array
+   *   An array representing the cacheable data for this render array.
+   */
+  public function getCacheableRenderArray(array $elements);
+
+  /**
+   * Gets the cached, pre-rendered element of a renderable element from cache.
+   *
+   * @param array $elements
+   *   A renderable array.
+   *
+   * @return array|false
+   *   A renderable array, with the original element and all its children pre-
+   *   rendered, or FALSE if no cached copy of the element is available.
+   *
+   * @see \Drupal\Core\Render\RendererInterface::render()
+   * @see ::set()
+   */
+  public function get(array $elements);
+
+  /**
+   * Caches the rendered output of a renderable array.
+   *
+   * May be called by an implementation of \Drupal\Core\Render\RendererInterface
+   * while rendering, if the #cache property is set.
+   *
+   * @param array $elements
+   *   A renderable array.
+   * @param array $pre_bubbling_elements
+   *   A renderable array corresponding to the state (in particular, the
+   *   cacheability metadata) of $elements prior to the beginning of its
+   *   rendering process, and therefore before any bubbling of child
+   *   information has taken place. Only the #cache property is used by this
+   *   function, so the caller may omit all other properties and children from
+   *   this array.
+   *
+   * @return bool|null
+   *   Returns FALSE if no cache item could be created, NULL otherwise.
+   *
+   * @see ::get()
+   */
+  public function set(array &$elements, array $pre_bubbling_elements);
+
+}