Mercurial > hg > isophonics-drupal-site
diff core/modules/field/src/Entity/FieldStorageConfig.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line diff
--- a/core/modules/field/src/Entity/FieldStorageConfig.php Mon Apr 23 09:33:26 2018 +0100 +++ b/core/modules/field/src/Entity/FieldStorageConfig.php Mon Apr 23 09:46:53 2018 +0100 @@ -398,7 +398,8 @@ * {@inheritdoc} */ public static function preDelete(EntityStorageInterface $storage, array $field_storages) { - $state = \Drupal::state(); + /** @var \Drupal\Core\Field\DeletedFieldsRepositoryInterface $deleted_fields_repository */ + $deleted_fields_repository = \Drupal::service('entity_field.deleted_fields_repository'); // Set the static flag so that we don't delete field storages whilst // deleting fields. @@ -407,23 +408,19 @@ // Delete or fix any configuration that is dependent, for example, fields. parent::preDelete($storage, $field_storages); - // Keep the field definitions in the state storage so we can use them later - // during field_purge_batch(). - $deleted_storages = $state->get('field.storage.deleted') ?: []; + // Keep the field storage definitions in the deleted fields repository so we + // can use them later during field_purge_batch(). /** @var \Drupal\field\FieldStorageConfigInterface $field_storage */ foreach ($field_storages as $field_storage) { // Only mark a field for purging if there is data. Otherwise, just remove // it. $target_entity_storage = \Drupal::entityTypeManager()->getStorage($field_storage->getTargetEntityTypeId()); if (!$field_storage->deleted && $target_entity_storage instanceof FieldableEntityStorageInterface && $target_entity_storage->countFieldData($field_storage, TRUE)) { - $config = $field_storage->toArray(); - $config['deleted'] = TRUE; - $config['bundles'] = $field_storage->getBundles(); - $deleted_storages[$field_storage->uuid()] = $config; + $storage_definition = clone $field_storage; + $storage_definition->deleted = TRUE; + $deleted_fields_repository->addFieldStorageDefinition($storage_definition); } } - - $state->set('field.storage.deleted', $deleted_storages); } /**