.../Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php | 8 ++++---- core/lib/Drupal/Core/Render/Renderer.php | 5 +++-- .../src/Tests/EntityReference/EntityReferenceFormatterTest.php | 8 ++------ core/modules/views/src/Plugin/views/field/Field.php | 6 +++--- core/tests/Drupal/Tests/Core/Render/RendererTest.php | 8 -------- 5 files changed, 12 insertions(+), 23 deletions(-) diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php index 351d51c..b9a339f 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php @@ -7,12 +7,12 @@ namespace Drupal\Core\Field\Plugin\Field\FieldFormatter; +use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Field\EntityReferenceFieldItemListInterface; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Core\Field\FormatterBase; -use Drupal\Core\Render\BubbleableMetadata; use Drupal\Core\TypedData\TranslatableInterface; /** @@ -58,7 +58,7 @@ protected function getEntitiesToView(EntityReferenceFieldItemListInterface $item $access = $this->checkAccess($entity); // Add the access result's cacheability, ::view() needs it. - $item->_accessCacheability = BubbleableMetadata::createFromObject($access); + $item->_accessCacheability = CacheableMetadata::createFromObject($access); if ($access->isAllowed()) { // Add the referring item, in case the formatter needs it. $entity->_referringItem = $items[$delta]; @@ -79,7 +79,7 @@ protected function getEntitiesToView(EntityReferenceFieldItemListInterface $item public function view(FieldItemListInterface $items) { $elements = parent::view($items); - $field_level_access_cacheability = new BubbleableMetadata(); + $field_level_access_cacheability = new CacheableMetadata(); // Try to map the cacheability of the access result that was set at // _accessCacheability in getEntitiesToView() to the corresponding render @@ -90,7 +90,7 @@ public function view(FieldItemListInterface $items) { // prepareView(). if (!empty($item->_accessCacheability)) { if (isset($elements[$delta])) { - BubbleableMetadata::createFromRenderArray($elements[$delta]) + CacheableMetadata::createFromRenderArray($elements[$delta]) ->merge($item->_accessCacheability) ->applyTo($elements[$delta]); } diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php index 1fd14ee..44c79e8 100644 --- a/core/lib/Drupal/Core/Render/Renderer.php +++ b/core/lib/Drupal/Core/Render/Renderer.php @@ -11,6 +11,7 @@ use Drupal\Component\Utility\NestedArray; use Drupal\Core\Cache\Cache; use Drupal\Core\Cache\CacheableDependencyInterface; +use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Cache\CacheContextsManager; use Drupal\Core\Cache\CacheFactoryInterface; use Drupal\Core\Controller\ControllerResolverInterface; @@ -800,8 +801,8 @@ public function mergeBubbleableMetadata(array $a, array $b) { * {@inheritdoc} */ public function addDependency(array &$elements, $dependency) { - $meta_a = BubbleableMetadata::createFromRenderArray($elements); - $meta_b = BubbleableMetadata::createFromObject($dependency); + $meta_a = CacheableMetadata::createFromRenderArray($elements); + $meta_b = CacheableMetadata::createFromObject($dependency); $meta_a->merge($meta_b)->applyTo($elements); } diff --git a/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php b/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php index 7bd22f7..548ae64 100644 --- a/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php +++ b/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php @@ -8,9 +8,9 @@ namespace Drupal\field\Tests\EntityReference; use Drupal\Core\Cache\Cache; +use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\entity_reference\Tests\EntityReferenceTestTrait; -use Drupal\Core\Render\BubbleableMetadata; use Drupal\field\Entity\FieldStorageConfig; use Drupal\filter\Entity\FilterFormat; use Drupal\system\Tests\Entity\EntityUnitTestBase; @@ -236,11 +236,9 @@ public function testLabelFormatter() { ], 'tags' => $this->referencedEntity->getCacheTags(), ), - '#attached' => [], - '#post_render_cache' => [], ); $this->assertEqual(drupal_render($build[0]), drupal_render($expected_item_1), sprintf('The markup returned by the %s formatter is correct for an item with a saved entity.', $formatter)); - $this->assertEqual(BubbleableMetadata::createFromRenderArray($build[0]), BubbleableMetadata::createFromRenderArray($expected_item_1)); + $this->assertEqual(CacheableMetadata::createFromRenderArray($build[0]), CacheableMetadata::createFromRenderArray($expected_item_1)); // The second referenced entity is "autocreated", therefore not saved and // lacking any URL info. @@ -253,8 +251,6 @@ public function testLabelFormatter() { 'tags' => $this->unsavedReferencedEntity->getCacheTags(), 'max-age' => Cache::PERMANENT, ), - '#attached' => [], - '#post_render_cache' => [], ); $this->assertEqual($build[1], $expected_item_2, sprintf('The render array returned by the %s formatter is correct for an item with a unsaved entity.', $formatter)); diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php index 439d835..5013b21 100644 --- a/core/modules/views/src/Plugin/views/field/Field.php +++ b/core/modules/views/src/Plugin/views/field/Field.php @@ -9,6 +9,7 @@ use Drupal\Component\Utility\SafeMarkup; use Drupal\Component\Utility\Xss as CoreXss; +use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityManagerInterface; use Drupal\Core\Field\FieldStorageDefinitionInterface; @@ -18,7 +19,6 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Language\LanguageManagerInterface; -use Drupal\Core\Render\BubbleableMetadata; use Drupal\Core\Render\Element; use Drupal\Core\Render\RendererInterface; use Drupal\Core\Session\AccountInterface; @@ -742,8 +742,8 @@ public function getItems(ResultRow $values) { // Merge the cacheability metadata of the top-level render array into // each child because they will most likely be rendered individually. if (isset($render_array['#cache'])) { - BubbleableMetadata::createFromRenderArray($render_array) - ->merge(BubbleableMetadata::createFromRenderArray($items[$delta]['rendered'])) + CacheableMetadata::createFromRenderArray($render_array) + ->merge(CacheableMetadata::createFromRenderArray($items[$delta]['rendered'])) ->applyTo($items[$delta]['rendered']); } // Add the raw field items (for use in tokens). diff --git a/core/tests/Drupal/Tests/Core/Render/RendererTest.php b/core/tests/Drupal/Tests/Core/Render/RendererTest.php index 56d9db1..bbea4b9 100644 --- a/core/tests/Drupal/Tests/Core/Render/RendererTest.php +++ b/core/tests/Drupal/Tests/Core/Render/RendererTest.php @@ -643,8 +643,6 @@ public function providerTestAddDependency() { 'tags' => [], 'max-age' => Cache::PERMANENT, ], - '#attached' => [], - '#post_render_cache' => [], ], ], // Empty render array, some cacheability. @@ -657,8 +655,6 @@ public function providerTestAddDependency() { 'tags' => ['foo'], 'max-age' => Cache::PERMANENT, ], - '#attached' => [], - '#post_render_cache' => [], ], ], // Cacheable render array, some cacheability. @@ -677,8 +673,6 @@ public function providerTestAddDependency() { 'tags' => ['bar', 'foo'], 'max-age' => 600, ], - '#attached' => [], - '#post_render_cache' => [], ], ], // Cacheable render array, no cacheability. @@ -697,8 +691,6 @@ public function providerTestAddDependency() { 'tags' => ['bar'], 'max-age' => 0, ], - '#attached' => [], - '#post_render_cache' => [], ], ], ];