You are here

public function EntityTestDefinitionSubscriber::onFieldStorageDefinitionCreate in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/modules/entity_test/src/EntityTestDefinitionSubscriber.php \Drupal\entity_test\EntityTestDefinitionSubscriber::onFieldStorageDefinitionCreate()

Reacts to the creation of a field storage definition.

Parameters

\Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition: The definition being created.

Overrides FieldStorageDefinitionEventSubscriberTrait::onFieldStorageDefinitionCreate

File

core/modules/system/tests/modules/entity_test/src/EntityTestDefinitionSubscriber.php, line 159

Class

EntityTestDefinitionSubscriber
Test entity type and field storage definition event subscriber.

Namespace

Drupal\entity_test

Code

public function onFieldStorageDefinitionCreate(FieldStorageDefinitionInterface $storage_definition) {
  if (isset($this->entityLastInstalledSchemaRepository
    ->getLastInstalledFieldStorageDefinitions($storage_definition
    ->getTargetEntityTypeId())[$storage_definition
    ->getName()])) {
    $this
      ->storeDefinitionUpdate(FieldStorageDefinitionEvents::CREATE);
  }
  $this
    ->storeEvent(FieldStorageDefinitionEvents::CREATE);

  // Retrieve the live field storage definitions in order to warm the static
  // cache and then insert the new storage definition, so we can test that the
  // cache doesn't get stale after the event has fired.
  if ($this->updateLiveDefinitions) {
    $this->entityFieldManager
      ->getFieldStorageDefinitions($storage_definition
      ->getTargetEntityTypeId());
    $this->state
      ->set('entity_test_rev.additional_base_field_definitions', [
      $storage_definition
        ->getName() => $storage_definition,
    ]);
  }
}