function EntitySchemaSubscriber::onEntityTypeUpdate

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']);
}

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