Issue #2351847 by damiankloip: Fixed Rename getCacheTag() to getCacheTags().
parent
8431924993
commit
985edb1548
|
|
@ -356,7 +356,7 @@ abstract class AccessResult implements AccessResultInterface, CacheableInterface
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function cacheUntilEntityChanges(EntityInterface $entity) {
|
public function cacheUntilEntityChanges(EntityInterface $entity) {
|
||||||
$this->addCacheTags($entity->getCacheTag());
|
$this->addCacheTags($entity->getCacheTags());
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
||||||
*/
|
*/
|
||||||
public function disable() {
|
public function disable() {
|
||||||
// An entity was disabled, invalidate its own cache tag.
|
// An entity was disabled, invalidate its own cache tag.
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
return $this->setStatus(FALSE);
|
return $this->setStatus(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class DateFormat extends ConfigEntityBase implements DateFormatInterface {
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
return ['rendered'];
|
return ['rendered'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -424,7 +424,7 @@ abstract class Entity implements EntityInterface {
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
// @todo Add bundle-specific listing cache tag? https://drupal.org/node/2145751
|
// @todo Add bundle-specific listing cache tag? https://drupal.org/node/2145751
|
||||||
return [$this->entityTypeId . ':' . $this->id()];
|
return [$this->entityTypeId . ':' . $this->id()];
|
||||||
}
|
}
|
||||||
|
|
@ -467,7 +467,7 @@ abstract class Entity implements EntityInterface {
|
||||||
$tags = $this->getEntityType()->getListCacheTags();
|
$tags = $this->getEntityType()->getListCacheTags();
|
||||||
if ($update) {
|
if ($update) {
|
||||||
// An existing entity was updated, also invalidate its unique cache tag.
|
// An existing entity was updated, also invalidate its unique cache tag.
|
||||||
$tags = Cache::mergeTags($tags, $this->getCacheTag());
|
$tags = Cache::mergeTags($tags, $this->getCacheTags());
|
||||||
$this->onUpdateBundleEntity();
|
$this->onUpdateBundleEntity();
|
||||||
}
|
}
|
||||||
Cache::invalidateTags($tags);
|
Cache::invalidateTags($tags);
|
||||||
|
|
@ -489,7 +489,7 @@ abstract class Entity implements EntityInterface {
|
||||||
// other pages than the one it's on. The one it's on is handled by its own
|
// other pages than the one it's on. The one it's on is handled by its own
|
||||||
// cache tag, but subsequent list pages would not be invalidated, hence we
|
// cache tag, but subsequent list pages would not be invalidated, hence we
|
||||||
// must invalidate its list cache tags as well.)
|
// must invalidate its list cache tags as well.)
|
||||||
$tags = Cache::mergeTags($tags, $entity->getCacheTag());
|
$tags = Cache::mergeTags($tags, $entity->getCacheTags());
|
||||||
}
|
}
|
||||||
Cache::invalidateTags($tags);
|
Cache::invalidateTags($tags);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -402,6 +402,6 @@ interface EntityInterface extends AccessibleInterface {
|
||||||
* @return array
|
* @return array
|
||||||
* An array of cache tags.
|
* An array of cache tags.
|
||||||
*/
|
*/
|
||||||
public function getCacheTag();
|
public function getCacheTags();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ class EntityViewBuilder extends EntityHandlerBase implements EntityHandlerInterf
|
||||||
'#langcode' => $langcode,
|
'#langcode' => $langcode,
|
||||||
// Collect cache defaults for this entity.
|
// Collect cache defaults for this entity.
|
||||||
'#cache' => array(
|
'#cache' => array(
|
||||||
'tags' => Cache::mergeTags($this->getCacheTag(), $entity->getCacheTag()),
|
'tags' => Cache::mergeTags($this->getCacheTags(), $entity->getCacheTags()),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -341,7 +341,7 @@ class EntityViewBuilder extends EntityHandlerBase implements EntityHandlerInterf
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
return array($this->entityTypeId . '_view');
|
return array($this->entityTypeId . '_view');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -362,12 +362,12 @@ class EntityViewBuilder extends EntityHandlerBase implements EntityHandlerInterf
|
||||||
if (isset($entities)) {
|
if (isset($entities)) {
|
||||||
$tags = [];
|
$tags = [];
|
||||||
foreach ($entities as $entity) {
|
foreach ($entities as $entity) {
|
||||||
$tags = Cache::mergeTags($tags, $entity->getCacheTag(), $entity->getEntityType()->getListCacheTags());
|
$tags = Cache::mergeTags($tags, $entity->getCacheTags(), $entity->getEntityType()->getListCacheTags());
|
||||||
}
|
}
|
||||||
Cache::invalidateTags($tags);
|
Cache::invalidateTags($tags);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,6 @@ interface EntityViewBuilderInterface {
|
||||||
* @return array
|
* @return array
|
||||||
* An array of cache tags.
|
* An array of cache tags.
|
||||||
*/
|
*/
|
||||||
public function getCacheTag();
|
public function getCacheTags();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -223,14 +223,14 @@ class Item extends ContentEntityBase implements ItemInterface {
|
||||||
// handles the regular cases. The Item entity has one special case: a newly
|
// handles the regular cases. The Item entity has one special case: a newly
|
||||||
// created Item is *also* associated with a Feed, so we must invalidate the
|
// created Item is *also* associated with a Feed, so we must invalidate the
|
||||||
// associated Feed's cache tag.
|
// associated Feed's cache tag.
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
return Feed::load($this->getFeedId())->getCacheTag();
|
return Feed::load($this->getFeedId())->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ class AggregatorFeedBlock extends BlockBase implements ContainerFactoryPluginInt
|
||||||
public function getCacheTags() {
|
public function getCacheTags() {
|
||||||
$cache_tags = parent::getCacheTags();
|
$cache_tags = parent::getCacheTags();
|
||||||
$feed = $this->feedStorage->load($this->configuration['feed']);
|
$feed = $this->feedStorage->load($this->configuration['feed']);
|
||||||
return Cache::mergeTags($cache_tags, $feed->getCacheTag());
|
return Cache::mergeTags($cache_tags, $feed->getCacheTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ class ItemCacheTagsTest extends EntityCacheTagsTestBase {
|
||||||
*/
|
*/
|
||||||
public function testEntityCreation() {
|
public function testEntityCreation() {
|
||||||
// Create a cache entry that is tagged with a feed cache tag.
|
// Create a cache entry that is tagged with a feed cache tag.
|
||||||
\Drupal::cache('render')->set('foo', 'bar', \Drupal\Core\Cache\CacheBackendInterface::CACHE_PERMANENT, $this->entity->getCacheTag());
|
\Drupal::cache('render')->set('foo', 'bar', \Drupal\Core\Cache\CacheBackendInterface::CACHE_PERMANENT, $this->entity->getCacheTags());
|
||||||
|
|
||||||
// Verify a cache hit.
|
// Verify a cache hit.
|
||||||
$this->verifyRenderCache('foo', array('aggregator_feed:1'));
|
$this->verifyRenderCache('foo', array('aggregator_feed:1'));
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,8 @@ class BlockViewBuilder extends EntityViewBuilder {
|
||||||
// Set cache tags; these always need to be set, whether the block is
|
// Set cache tags; these always need to be set, whether the block is
|
||||||
// cacheable or not, so that the page cache is correctly informed.
|
// cacheable or not, so that the page cache is correctly informed.
|
||||||
$build[$entity_id]['#cache']['tags'] = Cache::mergeTags(
|
$build[$entity_id]['#cache']['tags'] = Cache::mergeTags(
|
||||||
$this->getCacheTag(), // Block view builder cache tag.
|
$this->getCacheTags(), // Block view builder cache tag.
|
||||||
$entity->getCacheTag(), // Block entity cache tag.
|
$entity->getCacheTags(), // Block entity cache tag.
|
||||||
$plugin->getCacheTags() // Block plugin cache tags.
|
$plugin->getCacheTags() // Block plugin cache tags.
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ class Block extends ConfigEntityBase implements BlockInterface, EntityWithPlugin
|
||||||
// so we must invalidate the associated block's cache tag (which includes
|
// so we must invalidate the associated block's cache tag (which includes
|
||||||
// the theme cache tag).
|
// the theme cache tag).
|
||||||
if (!$update) {
|
if (!$update) {
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -179,8 +179,8 @@ class Block extends ConfigEntityBase implements BlockInterface, EntityWithPlugin
|
||||||
* appear there currently. Hence a block configuration entity must also return
|
* appear there currently. Hence a block configuration entity must also return
|
||||||
* the associated theme's cache tag.
|
* the associated theme's cache tag.
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
return Cache::mergeTags(parent::getCacheTag(), ['theme:' . $this->theme]);
|
return Cache::mergeTags(parent::getCacheTags(), ['theme:' . $this->theme]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -336,7 +336,7 @@ class Internal extends CKEditorPluginBase implements ContainerFactoryPluginInter
|
||||||
// Cache the "format_tags" configuration. This cache item is infinitely
|
// Cache the "format_tags" configuration. This cache item is infinitely
|
||||||
// valid; it only changes whenever the text format is changed, hence it's
|
// valid; it only changes whenever the text format is changed, hence it's
|
||||||
// tagged with the text format's cache tag.
|
// tagged with the text format's cache tag.
|
||||||
$this->cache->set($cid, $format_tags, Cache::PERMANENT, $format->getCacheTag());
|
$this->cache->set($cid, $format_tags, Cache::PERMANENT, $format->getCacheTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $format_tags;
|
return $format_tags;
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class ContentTranslationManageAccessCheckTest extends UnitTestCase {
|
||||||
->with()
|
->with()
|
||||||
->will($this->returnValue(array()));
|
->will($this->returnValue(array()));
|
||||||
$entity->expects($this->once())
|
$entity->expects($this->once())
|
||||||
->method('getCacheTag')
|
->method('getCacheTags')
|
||||||
->will($this->returnValue(array('node:1337')));
|
->will($this->returnValue(array('node:1337')));
|
||||||
|
|
||||||
// Set the route requirements.
|
// Set the route requirements.
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ class EditorFileReference extends FilterBase implements ContainerFactoryPluginIn
|
||||||
|
|
||||||
$file = $this->entityManager->loadEntityByUuid('file', $uuid);
|
$file = $this->entityManager->loadEntityByUuid('file', $uuid);
|
||||||
if ($file) {
|
if ($file) {
|
||||||
$result->addCacheTags($file->getCacheTag());
|
$result->addCacheTags($file->getCacheTags());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class EntityReferenceIdFormatter extends EntityReferenceFormatterBase {
|
||||||
// that the referenced entity is deleted, the cache for referring
|
// that the referenced entity is deleted, the cache for referring
|
||||||
// entities must be cleared.
|
// entities must be cleared.
|
||||||
'#cache' => array(
|
'#cache' => array(
|
||||||
'tags' => $entity->getCacheTag(),
|
'tags' => $entity->getCacheTags(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ class EntityReferenceLabelFormatter extends EntityReferenceFormatterBase {
|
||||||
else {
|
else {
|
||||||
$elements[$delta] = array('#markup' => String::checkPlain($label));
|
$elements[$delta] = array('#markup' => String::checkPlain($label));
|
||||||
}
|
}
|
||||||
$elements[$delta]['#cache']['tags'] = $entity->getCacheTag();
|
$elements[$delta]['#cache']['tags'] = $entity->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ class EntityReferenceFormatterTest extends EntityUnitTestBase {
|
||||||
$build = $items->view(array('type' => $formatter));
|
$build = $items->view(array('type' => $formatter));
|
||||||
|
|
||||||
$this->assertEqual($build[0]['#markup'], $this->referencedEntity->id(), format_string('The markup returned by the @formatter formatter is correct.', array('@formatter' => $formatter)));
|
$this->assertEqual($build[0]['#markup'], $this->referencedEntity->id(), format_string('The markup returned by the @formatter formatter is correct.', array('@formatter' => $formatter)));
|
||||||
$this->assertEqual($build[0]['#cache']['tags'], $this->referencedEntity->getCacheTag(), format_string('The @formatter formatter has the expected cache tags.', array('@formatter' => $formatter)));
|
$this->assertEqual($build[0]['#cache']['tags'], $this->referencedEntity->getCacheTags(), format_string('The @formatter formatter has the expected cache tags.', array('@formatter' => $formatter)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -180,9 +180,9 @@ class EntityReferenceFormatterTest extends EntityUnitTestBase {
|
||||||
drupal_render($build[0]);
|
drupal_render($build[0]);
|
||||||
$this->assertEqual($build[0]['#markup'], 'default | ' . $this->referencedEntity->label() . $expected_rendered_name_field . $expected_rendered_body_field, format_string('The markup returned by the @formatter formatter is correct.', array('@formatter' => $formatter)));
|
$this->assertEqual($build[0]['#markup'], 'default | ' . $this->referencedEntity->label() . $expected_rendered_name_field . $expected_rendered_body_field, format_string('The markup returned by the @formatter formatter is correct.', array('@formatter' => $formatter)));
|
||||||
$expected_cache_tags = Cache::mergeTags(
|
$expected_cache_tags = Cache::mergeTags(
|
||||||
\Drupal::entityManager()->getViewBuilder($this->entityType)->getCacheTag(),
|
\Drupal::entityManager()->getViewBuilder($this->entityType)->getCacheTags(),
|
||||||
$this->referencedEntity->getCacheTag(),
|
$this->referencedEntity->getCacheTags(),
|
||||||
FilterFormat::load('full_html')->getCacheTag()
|
FilterFormat::load('full_html')->getCacheTags()
|
||||||
);
|
);
|
||||||
$this->assertEqual($build[0]['#cache']['tags'], $expected_cache_tags, format_string('The @formatter formatter has the expected cache tags.', array('@formatter' => $formatter)));
|
$this->assertEqual($build[0]['#cache']['tags'], $expected_cache_tags, format_string('The @formatter formatter has the expected cache tags.', array('@formatter' => $formatter)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ class ProcessedText extends RenderElement {
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $element['#cache']['tags']);
|
$cache_tags = Cache::mergeTags($cache_tags, $element['#cache']['tags']);
|
||||||
}
|
}
|
||||||
// Prepend the text format's cache tags array.
|
// Prepend the text format's cache tags array.
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $format->getCacheTag());
|
$cache_tags = Cache::mergeTags($cache_tags, $format->getCacheTags());
|
||||||
$element['#cache']['tags'] = $cache_tags;
|
$element['#cache']['tags'] = $cache_tags;
|
||||||
|
|
||||||
// Collect all attached assets.
|
// Collect all attached assets.
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ use Drupal\Core\Cache\Cache;
|
||||||
* ));
|
* ));
|
||||||
*
|
*
|
||||||
* // Associate cache tags to be invalidated by.
|
* // Associate cache tags to be invalidated by.
|
||||||
* $result->setCacheTags($node->getCacheTag());
|
* $result->setCacheTags($node->getCacheTags());
|
||||||
*
|
*
|
||||||
* return $result;
|
* return $result;
|
||||||
* }
|
* }
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,7 @@ class ImageStyle extends ConfigEntityBase implements ImageStyleInterface, Entity
|
||||||
// Clear caches so that formatters may be added for this style.
|
// Clear caches so that formatters may be added for this style.
|
||||||
drupal_theme_rebuild();
|
drupal_theme_rebuild();
|
||||||
|
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ class ImageFormatter extends ImageFormatterBase {
|
||||||
$cache_tags = array();
|
$cache_tags = array();
|
||||||
if (!empty($image_style_setting)) {
|
if (!empty($image_style_setting)) {
|
||||||
$image_style = entity_load('image_style', $image_style_setting);
|
$image_style = entity_load('image_style', $image_style_setting);
|
||||||
$cache_tags = $image_style->getCacheTag();
|
$cache_tags = $image_style->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($items as $delta => $item) {
|
foreach ($items as $delta => $item) {
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ class ResponsiveImageFormatter extends ImageFormatterBase implements ContainerFa
|
||||||
}
|
}
|
||||||
$cache_tags = [];
|
$cache_tags = [];
|
||||||
if ($responsive_image_mapping) {
|
if ($responsive_image_mapping) {
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $responsive_image_mapping->getCacheTag());
|
$cache_tags = Cache::mergeTags($cache_tags, $responsive_image_mapping->getCacheTags());
|
||||||
foreach ($responsive_image_mapping->getMappings() as $mapping) {
|
foreach ($responsive_image_mapping->getMappings() as $mapping) {
|
||||||
// First mapping found is used as fallback.
|
// First mapping found is used as fallback.
|
||||||
if (empty($fallback_image_style)) {
|
if (empty($fallback_image_style)) {
|
||||||
|
|
@ -209,7 +209,7 @@ class ResponsiveImageFormatter extends ImageFormatterBase implements ContainerFa
|
||||||
}
|
}
|
||||||
$image_styles = entity_load_multiple('image_style', $image_styles_to_load);
|
$image_styles = entity_load_multiple('image_style', $image_styles_to_load);
|
||||||
foreach ($image_styles as $image_style) {
|
foreach ($image_styles as $image_style) {
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $image_style->getCacheTag());
|
$cache_tags = Cache::mergeTags($cache_tags, $image_style->getCacheTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($items as $delta => $item) {
|
foreach ($items as $delta => $item) {
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ class SearchController extends ControllerBase {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'#cache' => array(
|
'#cache' => array(
|
||||||
'tags' => $entity->getCacheTag(),
|
'tags' => $entity->getCacheTags(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,7 @@ function shortcut_renderable_links($shortcut_set = NULL) {
|
||||||
'title' => $shortcut->label(),
|
'title' => $shortcut->label(),
|
||||||
'url' => Url::fromRoute($shortcut->getRouteName(), $shortcut->getRouteParameters()),
|
'url' => Url::fromRoute($shortcut->getRouteName(), $shortcut->getRouteParameters()),
|
||||||
);
|
);
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $shortcut->getCacheTag());
|
$cache_tags = Cache::mergeTags($cache_tags, $shortcut->getCacheTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($links)) {
|
if (!empty($links)) {
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ class Shortcut extends ContentEntityBase implements ShortcutInterface {
|
||||||
// newly created shortcut is *also* added to a shortcut set, so we must
|
// newly created shortcut is *also* added to a shortcut set, so we must
|
||||||
// invalidate the associated shortcut set's cache tag.
|
// invalidate the associated shortcut set's cache tag.
|
||||||
if (!$update) {
|
if (!$update) {
|
||||||
Cache::invalidateTags($this->getCacheTag());
|
Cache::invalidateTags($this->getCacheTags());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -232,8 +232,8 @@ class Shortcut extends ContentEntityBase implements ShortcutInterface {
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
return $this->shortcut_set->entity->getCacheTag();
|
return $this->shortcut_set->entity->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -483,7 +483,7 @@
|
||||||
* This also is the case when you define your own entity types: you'll get the
|
* This also is the case when you define your own entity types: you'll get the
|
||||||
* exact same cache tag invalidation as any of the built-in entity types, with
|
* exact same cache tag invalidation as any of the built-in entity types, with
|
||||||
* the ability to override any of the default behavior if needed.
|
* the ability to override any of the default behavior if needed.
|
||||||
* See \Drupal\Core\Entity\EntityInterface::getCacheTag(),
|
* See \Drupal\Core\Entity\EntityInterface::getCacheTags(),
|
||||||
* \Drupal\Core\Entity\EntityTypeInterface::getListCacheTags(),
|
* \Drupal\Core\Entity\EntityTypeInterface::getListCacheTags(),
|
||||||
* \Drupal\Core\Entity\Entity::invalidateTagsOnSave() and
|
* \Drupal\Core\Entity\Entity::invalidateTagsOnSave() and
|
||||||
* \Drupal\Core\Entity\Entity::invalidateTagsOnDelete().
|
* \Drupal\Core\Entity\Entity::invalidateTagsOnDelete().
|
||||||
|
|
|
||||||
|
|
@ -287,21 +287,21 @@ abstract class EntityCacheTagsTestBase extends PageCacheTagsTestBase {
|
||||||
$view_cache_tag = array();
|
$view_cache_tag = array();
|
||||||
if ($this->entity->getEntityType()->hasHandlerClass('view_builder')) {
|
if ($this->entity->getEntityType()->hasHandlerClass('view_builder')) {
|
||||||
$view_cache_tag = \Drupal::entityManager()->getViewBuilder($entity_type)
|
$view_cache_tag = \Drupal::entityManager()->getViewBuilder($entity_type)
|
||||||
->getCacheTag();
|
->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate the cache tags for the (non) referencing entities.
|
// Generate the cache tags for the (non) referencing entities.
|
||||||
$referencing_entity_cache_tags = Cache::mergeTags(
|
$referencing_entity_cache_tags = Cache::mergeTags(
|
||||||
$this->referencing_entity->getCacheTag(),
|
$this->referencing_entity->getCacheTags(),
|
||||||
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTag(),
|
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTags(),
|
||||||
// Includes the main entity's cache tags, since this entity references it.
|
// Includes the main entity's cache tags, since this entity references it.
|
||||||
$this->entity->getCacheTag(),
|
$this->entity->getCacheTags(),
|
||||||
$this->getAdditionalCacheTagsForEntity($this->entity),
|
$this->getAdditionalCacheTagsForEntity($this->entity),
|
||||||
$view_cache_tag
|
$view_cache_tag
|
||||||
);
|
);
|
||||||
$non_referencing_entity_cache_tags = Cache::mergeTags(
|
$non_referencing_entity_cache_tags = Cache::mergeTags(
|
||||||
$this->non_referencing_entity->getCacheTag(),
|
$this->non_referencing_entity->getCacheTags(),
|
||||||
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTag()
|
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTags()
|
||||||
);
|
);
|
||||||
|
|
||||||
// Generate the cache tags for all two possible entity listing paths.
|
// Generate the cache tags for all two possible entity listing paths.
|
||||||
|
|
@ -314,7 +314,7 @@ abstract class EntityCacheTagsTestBase extends PageCacheTagsTestBase {
|
||||||
);
|
);
|
||||||
$nonempty_entity_listing_cache_tags = Cache::mergeTags(
|
$nonempty_entity_listing_cache_tags = Cache::mergeTags(
|
||||||
$this->entity->getEntityType()->getListCacheTags(),
|
$this->entity->getEntityType()->getListCacheTags(),
|
||||||
$this->entity->getCacheTag(),
|
$this->entity->getCacheTags(),
|
||||||
$this->getAdditionalCacheTagsForEntityListing($this->entity),
|
$this->getAdditionalCacheTagsForEntityListing($this->entity),
|
||||||
$theme_cache_tags,
|
$theme_cache_tags,
|
||||||
$render_cache_tags
|
$render_cache_tags
|
||||||
|
|
@ -444,7 +444,7 @@ abstract class EntityCacheTagsTestBase extends PageCacheTagsTestBase {
|
||||||
$this->verifyPageCache($non_referencing_entity_path, 'HIT');
|
$this->verifyPageCache($non_referencing_entity_path, 'HIT');
|
||||||
// Special case: entity types may choose to use their bundle entity type
|
// Special case: entity types may choose to use their bundle entity type
|
||||||
// cache tags, to avoid having excessively granular invalidation.
|
// cache tags, to avoid having excessively granular invalidation.
|
||||||
$is_special_case = $bundle_entity->getCacheTag() == $this->entity->getCacheTag() && $bundle_entity->getEntityType()->getListCacheTags() == $this->entity->getEntityType()->getListCacheTags();
|
$is_special_case = $bundle_entity->getCacheTags() == $this->entity->getCacheTags() && $bundle_entity->getEntityType()->getListCacheTags() == $this->entity->getEntityType()->getListCacheTags();
|
||||||
if ($is_special_case) {
|
if ($is_special_case) {
|
||||||
$this->verifyPageCache($empty_entity_listing_path, 'MISS');
|
$this->verifyPageCache($empty_entity_listing_path, 'MISS');
|
||||||
$this->verifyPageCache($nonempty_entity_listing_path, 'MISS');
|
$this->verifyPageCache($nonempty_entity_listing_path, 'MISS');
|
||||||
|
|
@ -504,7 +504,7 @@ abstract class EntityCacheTagsTestBase extends PageCacheTagsTestBase {
|
||||||
// a cache miss for every route except the ones for the non-referencing
|
// a cache miss for every route except the ones for the non-referencing
|
||||||
// entity and the empty entity listing.
|
// entity and the empty entity listing.
|
||||||
$this->pass("Test invalidation of referenced entity's cache tag.", 'Debug');
|
$this->pass("Test invalidation of referenced entity's cache tag.", 'Debug');
|
||||||
Cache::invalidateTags($this->entity->getCacheTag());
|
Cache::invalidateTags($this->entity->getCacheTags());
|
||||||
$this->verifyPageCache($referencing_entity_path, 'MISS');
|
$this->verifyPageCache($referencing_entity_path, 'MISS');
|
||||||
$this->verifyPageCache($listing_path, 'MISS');
|
$this->verifyPageCache($listing_path, 'MISS');
|
||||||
$this->verifyPageCache($nonempty_entity_listing_path, 'MISS');
|
$this->verifyPageCache($nonempty_entity_listing_path, 'MISS');
|
||||||
|
|
@ -561,8 +561,8 @@ abstract class EntityCacheTagsTestBase extends PageCacheTagsTestBase {
|
||||||
|
|
||||||
// Verify cache hits.
|
// Verify cache hits.
|
||||||
$referencing_entity_cache_tags = Cache::mergeTags(
|
$referencing_entity_cache_tags = Cache::mergeTags(
|
||||||
$this->referencing_entity->getCacheTag(),
|
$this->referencing_entity->getCacheTags(),
|
||||||
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTag()
|
\Drupal::entityManager()->getViewBuilder('entity_test')->getCacheTags()
|
||||||
);
|
);
|
||||||
$tags = Cache::mergeTags($render_cache_tags, $theme_cache_tags, $referencing_entity_cache_tags);
|
$tags = Cache::mergeTags($render_cache_tags, $theme_cache_tags, $referencing_entity_cache_tags);
|
||||||
$this->verifyPageCache($referencing_entity_path, 'HIT', $tags);
|
$this->verifyPageCache($referencing_entity_path, 'HIT', $tags);
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ abstract class EntityWithUriCacheTagsTestBase extends EntityCacheTagsTestBase {
|
||||||
$view_mode = $this->selectViewMode($entity_type);
|
$view_mode = $this->selectViewMode($entity_type);
|
||||||
|
|
||||||
// Generate the standardized entity cache tags.
|
// Generate the standardized entity cache tags.
|
||||||
$cache_tag = $this->entity->getCacheTag();
|
$cache_tag = $this->entity->getCacheTags();
|
||||||
$view_cache_tag = \Drupal::entityManager()->getViewBuilder($entity_type)->getCacheTag();
|
$view_cache_tag = \Drupal::entityManager()->getViewBuilder($entity_type)->getCacheTags();
|
||||||
$render_cache_tag = 'rendered';
|
$render_cache_tag = 'rendered';
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -110,7 +110,7 @@ abstract class EntityWithUriCacheTagsTestBase extends EntityCacheTagsTestBase {
|
||||||
// Verify that after invalidating the entity's cache tag directly, there is
|
// Verify that after invalidating the entity's cache tag directly, there is
|
||||||
// a cache miss.
|
// a cache miss.
|
||||||
$this->pass("Test invalidation of entity's cache tag.", 'Debug');
|
$this->pass("Test invalidation of entity's cache tag.", 'Debug');
|
||||||
Cache::invalidateTags($this->entity->getCacheTag());
|
Cache::invalidateTags($this->entity->getCacheTags());
|
||||||
$this->verifyPageCache($entity_path, 'MISS');
|
$this->verifyPageCache($entity_path, 'MISS');
|
||||||
|
|
||||||
// Verify a cache hit.
|
// Verify a cache hit.
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@ class EntityTestController extends ControllerBase {
|
||||||
$labels = [];
|
$labels = [];
|
||||||
foreach ($entities as $entity) {
|
foreach ($entities as $entity) {
|
||||||
$labels[] = $entity->label();
|
$labels[] = $entity->label();
|
||||||
$cache_tags = Cache::mergeTags($cache_tags, $entity->getCacheTag());
|
$cache_tags = Cache::mergeTags($cache_tags, $entity->getCacheTags());
|
||||||
}
|
}
|
||||||
// Always associate the list cache tag, otherwise the cached empty result
|
// Always associate the list cache tag, otherwise the cached empty result
|
||||||
// wouldn't be invalidated. This would continue to show nothing matches the
|
// wouldn't be invalidated. This would continue to show nothing matches the
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ class LinkFormatter extends TaxonomyFormatterBase {
|
||||||
unset($item->_attributes);
|
unset($item->_attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
$elements[$delta]['#cache']['tags'] = $item->entity->getCacheTag();
|
$elements[$delta]['#cache']['tags'] = $item->entity->getCacheTags();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ class TextFormatterTest extends EntityUnitTestBase {
|
||||||
$build = $entity->get('formatted_text')->view(array('type' => $formatter));
|
$build = $entity->get('formatted_text')->view(array('type' => $formatter));
|
||||||
drupal_render($build[0]);
|
drupal_render($build[0]);
|
||||||
$this->assertEqual($build[0]['#markup'], "<p>Hello, world!</p>\n");
|
$this->assertEqual($build[0]['#markup'], "<p>Hello, world!</p>\n");
|
||||||
$this->assertEqual($build[0]['#cache']['tags'], FilterFormat::load('my_text_format')->getCacheTag(), format_string('The @formatter formatter has the expected cache tags when formatting a formatted text field.', array('@formatter' => $formatter)));
|
$this->assertEqual($build[0]['#cache']['tags'], FilterFormat::load('my_text_format')->getCacheTags(), format_string('The @formatter formatter has the expected cache tags when formatting a formatted text field.', array('@formatter' => $formatter)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ class TourViewBuilder extends EntityViewBuilder {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'tags' => $entity->getCacheTag(),
|
'tags' => $entity->getCacheTags(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class AuthorFormatter extends FormatterBase {
|
||||||
'#account' => $referenced_user,
|
'#account' => $referenced_user,
|
||||||
'#link_options' => array('attributes' => array('rel' => 'author')),
|
'#link_options' => array('attributes' => array('rel' => 'author')),
|
||||||
'#cache' => array(
|
'#cache' => array(
|
||||||
'tags' => $referenced_user->getCacheTag(),
|
'tags' => $referenced_user->getCacheTags(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1123,8 +1123,8 @@ class ViewUI implements ViewStorageInterface {
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getCacheTag() {
|
public function getCacheTags() {
|
||||||
$this->storage->getCacheTag();
|
$this->storage->getCacheTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -439,7 +439,7 @@ class AccessResultTest extends UnitTestCase {
|
||||||
// ::cacheUntilEntityChanges() convenience method.
|
// ::cacheUntilEntityChanges() convenience method.
|
||||||
$node = $this->getMock('\Drupal\node\NodeInterface');
|
$node = $this->getMock('\Drupal\node\NodeInterface');
|
||||||
$node->expects($this->any())
|
$node->expects($this->any())
|
||||||
->method('getCacheTag')
|
->method('getCacheTags')
|
||||||
->will($this->returnValue(array('node:20011988')));
|
->will($this->returnValue(array('node:20011988')));
|
||||||
$tags = array('node:20011988');
|
$tags = array('node:20011988');
|
||||||
$a = AccessResult::neutral()->addCacheTags($tags);
|
$a = AccessResult::neutral()->addCacheTags($tags);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue