diff --git a/core/lib/Drupal/Core/Entity/EntityStorageBase.php b/core/lib/Drupal/Core/Entity/EntityStorageBase.php index 2ceb19c2b1..6d7ec951d7 100644 --- a/core/lib/Drupal/Core/Entity/EntityStorageBase.php +++ b/core/lib/Drupal/Core/Entity/EntityStorageBase.php @@ -539,6 +539,7 @@ protected function doPostSave(EntityInterface $entity, $update) { public function restore(EntityInterface $entity) { // Allow code to run before saving. $entity->preSave($this); + $this->invokeHook('presave', $entity); // The restore process does not invoke any post-save operations. $this->doSave($entity->id(), $entity); diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php index f5187c118f..ad248005bf 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php @@ -796,7 +796,7 @@ public function restore(EntityInterface $entity) { /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ // Allow code to run before saving. $entity->preSave($this); - $this->invokeFieldMethod('preSave', $entity); + $this->invokeHook('presave', $entity); // Insert the entity data in the base and data tables only for default // revisions. diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php index 965304c3b3..1688effe31 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php @@ -2,20 +2,17 @@ namespace Drupal\Core\Entity\Sql; -use Drupal\Core\Database\Connection; use Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface; -use Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Field\BaseFieldDefinition; -use Drupal\Core\KeyValueStore\KeyValueStoreInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; /** * Defines a schema converter for entity types with existing data. * - * For now, this can only be used to convert an entity type from - * non-revisionable to revisionable, however, it should be expanded so it can - * also handle converting an entity type to be translatable. + * @deprecated in Drupal 8.7.0, will be removed before Drupal 9.0.0. + * Use \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface::updateFieldableEntityType() + * instead. */ class SqlContentEntityStorageSchemaConverter { @@ -40,27 +37,6 @@ class SqlContentEntityStorageSchemaConverter { */ protected $entityDefinitionUpdateManager; - /** - * The last installed schema repository service. - * - * @var \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface - */ - protected $lastInstalledSchemaRepository; - - /** - * The key-value collection for tracking installed storage schema. - * - * @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface - */ - protected $installedStorageSchema; - - /** - * The database connection. - * - * @var \Drupal\Core\Database\Connection - */ - protected $database; - /** * SqlContentEntityStorageSchemaConverter constructor. * @@ -70,18 +46,11 @@ class SqlContentEntityStorageSchemaConverter { * The entity type manager. * @param \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface $entity_definition_update_manager * Entity definition update manager service. - * @param \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface $last_installed_schema_repository - * Last installed schema repository service. - * @param \Drupal\Core\Database\Connection $database - * Database connection. */ - public function __construct($entity_type_id, EntityTypeManagerInterface $entity_type_manager, EntityDefinitionUpdateManagerInterface $entity_definition_update_manager, EntityLastInstalledSchemaRepositoryInterface $last_installed_schema_repository, KeyValueStoreInterface $installed_storage_schema, Connection $database) { + public function __construct($entity_type_id, EntityTypeManagerInterface $entity_type_manager, EntityDefinitionUpdateManagerInterface $entity_definition_update_manager) { $this->entityTypeId = $entity_type_id; $this->entityTypeManager = $entity_type_manager; $this->entityDefinitionUpdateManager = $entity_definition_update_manager; - $this->lastInstalledSchemaRepository = $last_installed_schema_repository; - $this->installedStorageSchema = $installed_storage_schema; - $this->database = $database; } /** @@ -118,8 +87,6 @@ public function __construct($entity_type_id, EntityTypeManagerInterface $entity_ * Re-throws any exception raised during the update process. */ public function convertToRevisionable(array &$sandbox, array $fields_to_update = []) { - $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager(); - /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */ $this->entityTypeManager->useCaches(FALSE); $entity_type = $this->entityTypeManager->getDefinition($this->entityTypeId); @@ -170,7 +137,7 @@ public function convertToRevisionable(array &$sandbox, array $fields_to_update = $field_storage_definitions[$field_name]->setRevisionable(TRUE); } - $entity_definition_update_manager->updateFieldableEntityType($entity_type, $field_storage_definitions, $sandbox); + $this->entityDefinitionUpdateManager->updateFieldableEntityType($entity_type, $field_storage_definitions, $sandbox); } }