public EntityViewBuilder::resetCache(array $entities = NULL)
Resets the entity render cache.
Parameters
\Drupal\Core\Entity\EntityInterface[] $entities: (optional) If specified, the cache is reset for the given entities only.
Overrides EntityViewBuilderInterface::resetCache
File
- core/lib/Drupal/Core/Entity/EntityViewBuilder.php, line 335
Class
- EntityViewBuilder
- Base class for entity view builders.
Namespace
Drupal\Core\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public function resetCache( array $entities = NULL) { // If no set of specific entities is provided, invalidate the entity view // builder's cache tag. This will invalidate all entities rendered by this // view builder. // Otherwise, if a set of specific entities is provided, invalidate those // specific entities only, plus their list cache tags, because any lists in // which these entities are rendered, must be invalidated as well. However, // even in this case, we might invalidate more cache items than necessary. // When we have a way to invalidate only those cache items that have both // the individual entity's cache tag and the view builder's cache tag, we'll // be able to optimize this further. if (isset( $entities )) { $tags = []; foreach ( $entities as $entity ) { $tags = Cache::mergeTags( $tags , $entity ->getCacheTags()); $tags = Cache::mergeTags( $tags , $entity ->getEntityType()->getListCacheTags()); } Cache::invalidateTags( $tags ); } else { Cache::invalidateTags( $this ->getCacheTags()); } } |
Please login to continue.