EntityDefinitionUpdateManager::getChangeSummary

public EntityDefinitionUpdateManager::getChangeSummary()

Gets a human readable summary of the detected changes.

Return value

array An associative array keyed by entity type id. Each entry is an array of human-readable strings, each describing a change.

Overrides EntityDefinitionUpdateManagerInterface::getChangeSummary

File

core/lib/Drupal/Core/Entity/EntityDefinitionUpdateManager.php, line 44

Class

EntityDefinitionUpdateManager
Manages entity definition updates.

Namespace

Drupal\Core\Entity

Code

public function getChangeSummary() {
  $summary = array();

  foreach ($this->getChangeList() as $entity_type_id => $change_list) {
    // Process entity type definition changes.
    if (!empty($change_list['entity_type'])) {
      $entity_type = $this->entityManager->getDefinition($entity_type_id);

      switch ($change_list['entity_type']) {
        case static::DEFINITION_CREATED:
          $summary[$entity_type_id][] = $this->t('The %entity_type entity type needs to be installed.', ['%entity_type' => $entity_type->getLabel()]);
          break;

        case static::DEFINITION_UPDATED:
          $summary[$entity_type_id][] = $this->t('The %entity_type entity type needs to be updated.', ['%entity_type' => $entity_type->getLabel()]);
          break;
      }
    }

    // Process field storage definition changes.
    if (!empty($change_list['field_storage_definitions'])) {
      $storage_definitions = $this->entityManager->getFieldStorageDefinitions($entity_type_id);
      $original_storage_definitions = $this->entityManager->getLastInstalledFieldStorageDefinitions($entity_type_id);

      foreach ($change_list['field_storage_definitions'] as $field_name => $change) {
        switch ($change) {
          case static::DEFINITION_CREATED:
            $summary[$entity_type_id][] = $this->t('The %field_name field needs to be installed.', ['%field_name' => $storage_definitions[$field_name]->getLabel()]);
            break;

          case static::DEFINITION_UPDATED:
            $summary[$entity_type_id][] = $this->t('The %field_name field needs to be updated.', ['%field_name' => $storage_definitions[$field_name]->getLabel()]);
            break;

          case static::DEFINITION_DELETED:
            $summary[$entity_type_id][] = $this->t('The %field_name field needs to be uninstalled.', ['%field_name' => $original_storage_definitions[$field_name]->getLabel()]);
            break;
        }
      }
    }
  }

  return $summary;
}
doc_Drupal
2016-10-29 09:04:59
Comments
Leave a Comment

Please login to continue.