function EntityTypeListener::onFieldableEntityTypeUpdate

Same name in other branches
  1. 9 core/lib/Drupal/Core/Entity/EntityTypeListener.php \Drupal\Core\Entity\EntityTypeListener::onFieldableEntityTypeUpdate()
  2. 10 core/lib/Drupal/Core/Entity/EntityTypeListener.php \Drupal\Core\Entity\EntityTypeListener::onFieldableEntityTypeUpdate()
  3. 11.x core/lib/Drupal/Core/Entity/EntityTypeListener.php \Drupal\Core\Entity\EntityTypeListener::onFieldableEntityTypeUpdate()

Overrides EntityTypeListenerInterface::onFieldableEntityTypeUpdate

File

core/lib/Drupal/Core/Entity/EntityTypeListener.php, line 152

Class

EntityTypeListener
Reacts to entity type CRUD on behalf of the Entity system.

Namespace

Drupal\Core\Entity

Code

public function onFieldableEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeInterface $original, array $field_storage_definitions, array $original_field_storage_definitions, array &$sandbox = NULL) {
    $entity_type_id = $entity_type->id();
    // @todo Forward this to all interested handlers, not only storage, once
    //   iterating handlers is possible: https://www.drupal.org/node/2332857.
    $storage = $this->entityTypeManager
        ->createHandlerInstance($entity_type->getStorageClass(), $entity_type);
    if ($storage instanceof EntityTypeListenerInterface) {
        $storage->onFieldableEntityTypeUpdate($entity_type, $original, $field_storage_definitions, $original_field_storage_definitions, $sandbox);
    }
    if ($sandbox === NULL || isset($sandbox['#finished']) && $sandbox['#finished'] == 1) {
        $this->entityLastInstalledSchemaRepository
            ->setLastInstalledDefinition($entity_type);
        if ($entity_type->entityClassImplements(FieldableEntityInterface::class)) {
            $this->entityLastInstalledSchemaRepository
                ->setLastInstalledFieldStorageDefinitions($entity_type_id, $field_storage_definitions);
        }
        $this->eventDispatcher
            ->dispatch(EntityTypeEvents::UPDATE, new EntityTypeEvent($entity_type, $original));
        $this->clearCachedDefinitions();
    }
}

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