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