diff core/modules/views/src/ExposedFormCache.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/modules/views/src/ExposedFormCache.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,62 @@
+<?php
+
+namespace Drupal\views;
+
+/**
+ * Caches exposed forms, as they are heavy to generate.
+ *
+ * @see \Drupal\views\Form\ViewsExposedForm
+ */
+class ExposedFormCache {
+
+  /**
+   * Stores the exposed form data.
+   *
+   * @var array
+   */
+  protected $cache = [];
+
+  /**
+   * Save the Views exposed form for later use.
+   *
+   * @param string $view_id
+   *   The views ID.
+   * @param string $display_id
+   *   The current view display name.
+   * @param array $form_output
+   *   The form structure. Only needed when inserting the value.
+   */
+  public function setForm($view_id, $display_id, array $form_output) {
+    // Save the form output.
+    $views_exposed[$view_id][$display_id] = $form_output;
+  }
+
+  /**
+   * Retrieves the views exposed form from cache.
+   *
+   * @param string $view_id
+   *   The views ID.
+   * @param string $display_id
+   *   The current view display name.
+   *
+   * @return array|bool
+   *   The form structure, if any, otherwise FALSE.
+   */
+  public function getForm($view_id, $display_id) {
+    // Return the form output, if any.
+    if (empty($this->cache[$view_id][$display_id])) {
+      return FALSE;
+    }
+    else {
+      return $this->cache[$view_id][$display_id];
+    }
+  }
+
+  /**
+   * Rests the form cache.
+   */
+  public function reset() {
+    $this->cache = [];
+  }
+
+}