Revert "Issue #3070022 by gease, sokru, kfritsche, hchonov, lauriii: Introduce EntityBase::getCacheTagsToInvalidateOnSave()"
This reverts commit 7e847dc57b
.
merge-requests/3166/merge
parent
b55b81f576
commit
02f06bc2c7
|
@ -3,6 +3,7 @@
|
|||
namespace Drupal\Core\Config\Entity;
|
||||
|
||||
use Drupal\Component\Utility\NestedArray;
|
||||
use Drupal\Core\Cache\Cache;
|
||||
use Drupal\Core\Config\Schema\SchemaIncompleteException;
|
||||
use Drupal\Core\Entity\EntityBase;
|
||||
use Drupal\Core\Config\ConfigDuplicateUUIDException;
|
||||
|
@ -479,8 +480,8 @@ abstract class ConfigEntityBase extends EntityBase implements ConfigEntityInterf
|
|||
* Override to never invalidate the entity's cache tag; the config system
|
||||
* already invalidates it.
|
||||
*/
|
||||
protected function getTagsToInvalidateOnSave($update) {
|
||||
return $this->getEntityType()->getListCacheTags();
|
||||
protected function invalidateTagsOnSave($update) {
|
||||
Cache::invalidateTags($this->getListCacheTagsToInvalidate());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -489,8 +490,12 @@ abstract class ConfigEntityBase extends EntityBase implements ConfigEntityInterf
|
|||
* Override to never invalidate the individual entities' cache tags; the
|
||||
* config system already invalidates them.
|
||||
*/
|
||||
protected static function getTagsToInvalidateOnDelete(EntityTypeInterface $entity_type, array $entities) {
|
||||
return $entity_type->getListCacheTags();
|
||||
protected static function invalidateTagsOnDelete(EntityTypeInterface $entity_type, array $entities) {
|
||||
$tags = $entity_type->getListCacheTags();
|
||||
foreach ($entities as $entity) {
|
||||
$tags = Cache::mergeTags($tags, $entity->getListCacheTagsToInvalidate());
|
||||
}
|
||||
Cache::invalidateTags($tags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -509,15 +509,12 @@ abstract class EntityBase implements EntityInterface {
|
|||
}
|
||||
|
||||
/**
|
||||
* Get an entity's cache tags upon save.
|
||||
* Invalidates an entity's cache tags upon save.
|
||||
*
|
||||
* @param bool $update
|
||||
* TRUE if the entity has been updated, or FALSE if it has been inserted.
|
||||
*
|
||||
* @return string[]
|
||||
* A set of cache tags.
|
||||
*/
|
||||
protected function getTagsToInvalidateOnSave($update) {
|
||||
protected function invalidateTagsOnSave($update) {
|
||||
// An entity was created or updated: invalidate its list cache tags. (An
|
||||
// updated entity may start to appear in a listing because it now meets that
|
||||
// listing's filtering requirements. A newly created entity may start to
|
||||
|
@ -531,42 +528,7 @@ abstract class EntityBase implements EntityInterface {
|
|||
// An existing entity was updated, also invalidate its unique cache tag.
|
||||
$tags = Cache::mergeTags($tags, $this->getCacheTagsToInvalidate());
|
||||
}
|
||||
return $tags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidates an entity's cache tags upon save.
|
||||
*
|
||||
* @param bool $update
|
||||
* TRUE if the entity has been updated, or FALSE if it has been inserted.
|
||||
*/
|
||||
protected function invalidateTagsOnSave($update) {
|
||||
Cache::invalidateTags($this->getTagsToInvalidateOnSave($update));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get entity's cache tags upon delete.
|
||||
*
|
||||
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
|
||||
* The entity type definition.
|
||||
* @param \Drupal\Core\Entity\EntityInterface[] $entities
|
||||
* An array of entities.
|
||||
*
|
||||
* @return string[]
|
||||
* A set of cache tags.
|
||||
*/
|
||||
protected static function getTagsToInvalidateOnDelete(EntityTypeInterface $entity_type, array $entities) {
|
||||
$tags = $entity_type->getListCacheTags();
|
||||
foreach ($entities as $entity) {
|
||||
// An entity was deleted: invalidate its own cache tag, but also its list
|
||||
// cache tags. (A deleted entity may cause changes in a paged list on
|
||||
// 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
|
||||
// must invalidate its list cache tags as well.)
|
||||
$tags = Cache::mergeTags($tags, $entity->getCacheTagsToInvalidate());
|
||||
$tags = Cache::mergeTags($tags, $entity->getListCacheTagsToInvalidate());
|
||||
}
|
||||
return $tags;
|
||||
Cache::invalidateTags($tags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -578,7 +540,17 @@ abstract class EntityBase implements EntityInterface {
|
|||
* An array of entities.
|
||||
*/
|
||||
protected static function invalidateTagsOnDelete(EntityTypeInterface $entity_type, array $entities) {
|
||||
Cache::invalidateTags(static::getTagsToInvalidateOnDelete($entity_type, $entities));
|
||||
$tags = $entity_type->getListCacheTags();
|
||||
foreach ($entities as $entity) {
|
||||
// An entity was deleted: invalidate its own cache tag, but also its list
|
||||
// cache tags. (A deleted entity may cause changes in a paged list on
|
||||
// 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
|
||||
// must invalidate its list cache tags as well.)
|
||||
$tags = Cache::mergeTags($tags, $entity->getCacheTagsToInvalidate());
|
||||
$tags = Cache::mergeTags($tags, $entity->getListCacheTagsToInvalidate());
|
||||
}
|
||||
Cache::invalidateTags($tags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue