You are here

public function ConfigImportSubscriber::onConfigImporterValidate in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php \Drupal\Core\EventSubscriber\ConfigImportSubscriber::onConfigImporterValidate()
  2. 10 core/modules/content_moderation/src/EventSubscriber/ConfigImportSubscriber.php \Drupal\content_moderation\EventSubscriber\ConfigImportSubscriber::onConfigImporterValidate()
Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php \Drupal\Core\EventSubscriber\ConfigImportSubscriber::onConfigImporterValidate()
  2. 9 core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php \Drupal\Core\EventSubscriber\ConfigImportSubscriber::onConfigImporterValidate()

Validates the configuration to be imported.

Parameters

\Drupal\Core\Config\ConfigImporterEvent $event: The Event to process.

Throws

\Drupal\Core\Config\ConfigNameException

Overrides ConfigImportValidateEventSubscriberBase::onConfigImporterValidate

File

core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php, line 80

Class

ConfigImportSubscriber
Config import subscriber for config import events.

Namespace

Drupal\Core\EventSubscriber

Code

public function onConfigImporterValidate(ConfigImporterEvent $event) {
  foreach ([
    'delete',
    'create',
    'update',
  ] as $op) {
    foreach ($event
      ->getConfigImporter()
      ->getUnprocessedConfiguration($op) as $name) {
      try {
        Config::validateName($name);
      } catch (ConfigNameException $e) {
        $message = $this
          ->t('The config name @config_name is invalid.', [
          '@config_name' => $name,
        ]);
        $event
          ->getConfigImporter()
          ->logError($message);
      }
    }
  }
  $config_importer = $event
    ->getConfigImporter();
  if ($config_importer
    ->getStorageComparer()
    ->getSourceStorage()
    ->exists('core.extension')) {
    $this
      ->validateModules($config_importer);
    $this
      ->validateThemes($config_importer);
    $this
      ->validateDependencies($config_importer);
  }
  else {
    $config_importer
      ->logError($this
      ->t('The core.extension configuration does not exist.'));
  }
}