You are here

public function EntitySchemaSubscriber::onEntityTypeUpdate in Drupal 10

Same name in this branch
  1. 10 core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\workspaces\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  2. 10 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. 8 core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()
  2. 9 core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php \Drupal\entity_test_update\EventSubscriber\EntitySchemaSubscriber::onEntityTypeUpdate()

Reacts to the update of the entity type.

Parameters

\Drupal\Core\Entity\EntityTypeInterface $entity_type: The updated entity type definition.

\Drupal\Core\Entity\EntityTypeInterface $original: The original entity type definition.

Overrides EntityTypeEventSubscriberTrait::onEntityTypeUpdate

File

core/modules/system/tests/modules/entity_test_update/src/EventSubscriber/EntitySchemaSubscriber.php, line 77

Class

EntitySchemaSubscriber
Defines a class for listening to entity schema changes.

Namespace

Drupal\entity_test_update\EventSubscriber

Code

public function onEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeInterface $original) {

  // Only add the new base field when a test needs it.
  if (!$this->state
    ->get('entity_test_update.install_new_base_field_during_update', FALSE)) {
    return;
  }

  // Add a new base field when the entity type is updated.
  $definitions = $this->state
    ->get('entity_test_update.additional_base_field_definitions', []);
  $definitions['new_base_field'] = BaseFieldDefinition::create('string')
    ->setName('new_base_field')
    ->setLabel(new TranslatableMarkup('A new base field'));
  $this->state
    ->set('entity_test_update.additional_base_field_definitions', $definitions);
  $this->entityDefinitionUpdateManager
    ->installFieldStorageDefinition('new_base_field', 'entity_test_update', 'entity_test_update', $definitions['new_base_field']);
}