8.3.x RefinableCacheableDependencyTrait.php public RefinableCacheableDependencyTrait::addCacheableDependency($other_object)
8.0.x RefinableCacheableDependencyTrait.php public RefinableCacheableDependencyTrait::addCacheableDependency($other_object)
8.1.x RefinableCacheableDependencyTrait.php public RefinableCacheableDependencyTrait::addCacheableDependency($other_object)
8.2.x RefinableCacheableDependencyTrait.php public RefinableCacheableDependencyTrait::addCacheableDependency($other_object)
8.4.x RefinableCacheableDependencyTrait.php public RefinableCacheableDependencyTrait::addCacheableDependency($other_object)

Adds a dependency on an object: merges its cacheability metadata.

Parameters

\Drupal\Core\Cache\CacheableDependencyInterface|object $other_object: The dependency. If the object implements CacheableDependencyInterface, then its cacheability metadata will be used. Otherwise, the passed in object must be assumed to be uncacheable, so max-age 0 is set.

Return value

$this

Overrides RefinableCacheableDependencyInterface::addCacheableDependency

See also

\Drupal\Core\Cache\CacheableMetadata::createFromObject()

5 calls to RefinableCacheableDependencyTrait::addCacheableDependency()
AccessResult::cacheUntilConfigurationChanges in core/lib/Drupal/Core/Access/AccessResult.php
Convenience method, adds the configuration object's cache tag.
AccessResult::cacheUntilEntityChanges in core/lib/Drupal/Core/Access/AccessResult.php
Convenience method, adds the entity's cache tag.
AccessResult::inheritCacheability in core/lib/Drupal/Core/Access/AccessResult.php
Inherits the cacheability of the other access result, if any.
NodeSearch::prepareResults in core/modules/node/src/Plugin/Search/NodeSearch.php
Prepares search results for rendering.
UserSearch::execute in core/modules/user/src/Plugin/Search/UserSearch.php
Executes the search.
1 method overrides RefinableCacheableDependencyTrait::addCacheableDependency()
BubbleableMetadata::addCacheableDependency in core/lib/Drupal/Core/Render/BubbleableMetadata.php
Adds a dependency on an object: merges its cacheability metadata.

File

core/lib/Drupal/Core/Cache/RefinableCacheableDependencyTrait.php, line 55

Class

RefinableCacheableDependencyTrait
Trait for \Drupal\Core\Cache\RefinableCacheableDependencyInterface.

Namespace

Drupal\Core\Cache

Code

public function addCacheableDependency($other_object) {
  if ($other_object instanceof CacheableDependencyInterface) {
    $this->addCacheContexts($other_object->getCacheContexts());
    $this->addCacheTags($other_object->getCacheTags());
    $this->mergeCacheMaxAge($other_object->getCacheMaxAge());
  }
  else {
    // Not a cacheable dependency, this can not be cached.
    $this->cacheMaxAge = 0;
  }
  return $this;
}