--- /dev/null
+/**
+ * Implements hook_entity_field_storage_info().
+ */
+function {{ machine_name }}_entity_field_storage_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) {
+ if (\Drupal::entityManager()->getStorage($entity_type->id()) instanceof DynamicallyFieldableEntityStorageInterface) {
+ // Query by filtering on the ID as this is more efficient than filtering
+ // on the entity_type property directly.
+ $ids = \Drupal::entityQuery('field_storage_config')
+ ->condition('id', $entity_type->id() . '.', 'STARTS_WITH')
+ ->execute();
+ // Fetch all fields and key them by field name.
+ $field_storages = FieldStorageConfig::loadMultiple($ids);
+ $result = [];
+ foreach ($field_storages as $field_storage) {
+ $result[$field_storage->getName()] = $field_storage;
+ }
+
+ return $result;
+ }
+}