function EntitySchemaSubscriber::onEntityTypeUpdate

Same name in this branch
  1. 11.x core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
Same name and namespace in other branches
  1. 9 core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\workspaces\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  2. 9 core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  3. 8.9.x core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\workspaces\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  4. 8.9.x core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  5. 10 core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\workspaces\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  6. 10 core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()

Overrides EntityTypeEventSubscriberTrait::onEntityTypeUpdate

1 call to EntitySchemaSubscriber::onEntityTypeUpdate()
EntitySchemaSubscriber::onFieldableEntityTypeUpdate in core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php
Reacts to the update of a fieldable entity type.

File

core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php, line 88

Class

EntitySchemaSubscriber
Defines a class for listening to entity schema changes.

Namespace

Drupal\workspaces\EventSubscriber

Code

public function onEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeInterface $original) {
  // If the entity type is now supported by Workspaces, add the revision
  // metadata field.
  if ($this->workspaceInfo
    ->isEntityTypeSupported($entity_type) && !$this->workspaceInfo
    ->isEntityTypeSupported($original)) {
    $this->addRevisionMetadataField($entity_type);
  }
  // If the entity type is no longer supported by Workspaces, remove the
  // revision metadata field.
  if ($this->workspaceInfo
    ->isEntityTypeSupported($original) && !$this->workspaceInfo
    ->isEntityTypeSupported($entity_type)) {
    $revision_metadata_keys = $original->get('revision_metadata_keys');
    $field_storage_definition = $this->entityLastInstalledSchemaRepository
      ->getLastInstalledFieldStorageDefinitions($entity_type->id())[$revision_metadata_keys['workspace']];
    $this->entityDefinitionUpdateManager
      ->uninstallFieldStorageDefinition($field_storage_definition);
    // We are only removing a revision metadata key so we don't need to go
    // through the entity update process.
    $entity_type->setRevisionMetadataKey('workspace', NULL);
    $this->entityLastInstalledSchemaRepository
      ->setLastInstalledDefinition($entity_type);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.