From 8c4591e2b172f6624bfe6cc08b82dba4cec322fb Mon Sep 17 00:00:00 2001 From: Dave Long <dave@longwaveconsulting.com> Date: Wed, 7 May 2025 10:26:17 +0100 Subject: [PATCH] Issue #3519271 by catch: ViewsViewsHooks queries all field storages twice --- .../views/src/Hook/ViewsViewsHooks.php | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/core/modules/views/src/Hook/ViewsViewsHooks.php b/core/modules/views/src/Hook/ViewsViewsHooks.php index 531f6c754fa2..a54decce9e62 100644 --- a/core/modules/views/src/Hook/ViewsViewsHooks.php +++ b/core/modules/views/src/Hook/ViewsViewsHooks.php @@ -183,34 +183,13 @@ public function viewsData(): array { if (is_array($result)) { $data = NestedArray::mergeDeep($result, $data); } + \Drupal::moduleHandler()->invoke($field_storage->getTypeProvider(), 'field_views_data_views_data_alter', [&$data, $field_storage]); } } } return $data; } - /** - * Implements hook_views_data_alter(). - * - * Field modules can implement hook_field_views_data_views_data_alter() to - * alter the views data on a per field basis. This is weirdly named so as not - * to conflict with the \Drupal::moduleHandler()->alter('field_views_data') in - * views_views_data(). - */ - #[Hook('views_data_alter')] - public function viewsDataAlter(&$data): void { - $entity_type_manager = \Drupal::entityTypeManager(); - if (!$entity_type_manager->hasDefinition('field_storage_config')) { - return; - } - /** @var \Drupal\field\FieldStorageConfigInterface $field_storage */ - foreach ($entity_type_manager->getStorage('field_storage_config')->loadMultiple() as $field_storage) { - if (\Drupal::service('views.field_data_provider')->getSqlStorageForField($field_storage)) { - \Drupal::moduleHandler()->invoke($field_storage->getTypeProvider(), 'field_views_data_views_data_alter', [&$data, $field_storage]); - } - } - } - /** * Implements hook_field_views_data(). * -- GitLab