function ContentUninstallValidator::validate

Same name in this branch
  1. 11.x core/lib/Drupal/Core/ProxyClass/Entity/ContentUninstallValidator.php \Drupal\Core\ProxyClass\Entity\ContentUninstallValidator::validate()
Same name in other branches
  1. 9 core/lib/Drupal/Core/ProxyClass/Entity/ContentUninstallValidator.php \Drupal\Core\ProxyClass\Entity\ContentUninstallValidator::validate()
  2. 9 core/lib/Drupal/Core/Entity/ContentUninstallValidator.php \Drupal\Core\Entity\ContentUninstallValidator::validate()
  3. 8.9.x core/lib/Drupal/Core/ProxyClass/Entity/ContentUninstallValidator.php \Drupal\Core\ProxyClass\Entity\ContentUninstallValidator::validate()
  4. 8.9.x core/lib/Drupal/Core/Entity/ContentUninstallValidator.php \Drupal\Core\Entity\ContentUninstallValidator::validate()
  5. 10 core/lib/Drupal/Core/ProxyClass/Entity/ContentUninstallValidator.php \Drupal\Core\ProxyClass\Entity\ContentUninstallValidator::validate()
  6. 10 core/lib/Drupal/Core/Entity/ContentUninstallValidator.php \Drupal\Core\Entity\ContentUninstallValidator::validate()

Overrides ModuleUninstallValidatorInterface::validate

File

core/lib/Drupal/Core/Entity/ContentUninstallValidator.php, line 39

Class

ContentUninstallValidator
Validates module uninstall readiness based on existing content entities.

Namespace

Drupal\Core\Entity

Code

public function validate($module) {
    $entity_types = $this->entityTypeManager
        ->getDefinitions();
    $reasons = [];
    foreach ($entity_types as $entity_type) {
        if ($module == $entity_type->getProvider() && $entity_type instanceof ContentEntityTypeInterface && $this->entityTypeManager
            ->getStorage($entity_type->id())
            ->hasData()) {
            $reasons[] = $this->t('There is content for the entity type: @entity_type. <a href=":url">Remove @entity_type_plural</a>.', [
                '@entity_type' => $entity_type->getLabel(),
                '@entity_type_plural' => $entity_type->getPluralLabel(),
                ':url' => Url::fromRoute('system.prepare_modules_entity_uninstall', [
                    'entity_type_id' => $entity_type->id(),
                ])
                    ->toString(),
            ]);
        }
    }
    return $reasons;
}

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