diff core/lib/Drupal/Core/Cache/CacheableResponseTrait.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/Cache/CacheableResponseTrait.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,47 @@
+<?php
+
+namespace Drupal\Core\Cache;
+
+/**
+ * Provides an implementation of CacheableResponseInterface.
+ *
+ * @see \Drupal\Core\Cache\CacheableResponseInterface
+ */
+trait CacheableResponseTrait {
+
+  /**
+   * The cacheability metadata.
+   *
+   * @var \Drupal\Core\Cache\CacheableMetadata
+   */
+  protected $cacheabilityMetadata;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function addCacheableDependency($dependency) {
+    // A trait doesn't have a constructor, so initialize the cacheability
+    // metadata if that hasn't happened yet.
+    if (!isset($this->cacheabilityMetadata)) {
+      $this->cacheabilityMetadata = new CacheableMetadata();
+    }
+
+    $this->cacheabilityMetadata = $this->cacheabilityMetadata->merge(CacheableMetadata::createFromObject($dependency));
+
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCacheableMetadata() {
+    // A trait doesn't have a constructor, so initialize the cacheability
+    // metadata if that hasn't happened yet.
+    if (!isset($this->cacheabilityMetadata)) {
+      $this->cacheabilityMetadata = new CacheableMetadata();
+    }
+
+    return $this->cacheabilityMetadata;
+  }
+
+}