public CacheableMetadata::merge(CacheableMetadata $other)
Merges the values of another CacheableMetadata object with this one.
Parameters
\Drupal\Core\Cache\CacheableMetadata $other: The other CacheableMetadata object.
Return value
static A new CacheableMetadata object, with the merged data.
File
- core/lib/Drupal/Core/Cache/CacheableMetadata.php, line 92
Class
- CacheableMetadata
- Defines a generic class for passing cacheability metadata.
Namespace
Drupal\Core\Cache
Code
public function merge(CacheableMetadata $other) { $result = clone $this; // This is called many times per request, so avoid merging unless absolutely // necessary. if (empty($this->cacheContexts)) { $result->cacheContexts = $other->cacheContexts; } elseif (empty($other->cacheContexts)) { $result->cacheContexts = $this->cacheContexts; } else { $result->cacheContexts = Cache::mergeContexts($this->cacheContexts, $other->cacheContexts); } if (empty($this->cacheTags)) { $result->cacheTags = $other->cacheTags; } elseif (empty($other->cacheTags)) { $result->cacheTags = $this->cacheTags; } else { $result->cacheTags = Cache::mergeTags($this->cacheTags, $other->cacheTags); } if ($this->cacheMaxAge === Cache::PERMANENT) { $result->cacheMaxAge = $other->cacheMaxAge; } elseif ($other->cacheMaxAge === Cache::PERMANENT) { $result->cacheMaxAge = $this->cacheMaxAge; } else { $result->cacheMaxAge = Cache::mergeMaxAges($this->cacheMaxAge, $other->cacheMaxAge); } return $result; }
Please login to continue.