You are here

public function ConfigImporter::doSyncStep in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Config/ConfigImporter.php \Drupal\Core\Config\ConfigImporter::doSyncStep()
  2. 9 core/lib/Drupal/Core/Config/ConfigImporter.php \Drupal\Core\Config\ConfigImporter::doSyncStep()

Calls a config import step.

Parameters

string|callable $sync_step: The step to do. Either a method on the ConfigImporter class or a callable.

array $context: A batch context array. If the config importer is not running in a batch the only array key that is used is $context['finished']. A process needs to set $context['finished'] = 1 when it is done.

Throws

\InvalidArgumentException Exception thrown if the $sync_step can not be called.

File

core/lib/Drupal/Core/Config/ConfigImporter.php, line 506

Class

ConfigImporter
Defines a configuration importer.

Namespace

Drupal\Core\Config

Code

public function doSyncStep($sync_step, &$context) {
  if (!is_array($sync_step) && method_exists($this, $sync_step)) {
    \Drupal::service('config.installer')
      ->setSyncing(TRUE);
    $this
      ->{$sync_step}($context);
  }
  elseif (is_callable($sync_step)) {
    \Drupal::service('config.installer')
      ->setSyncing(TRUE);
    call_user_func_array($sync_step, [
      &$context,
      $this,
    ]);
  }
  else {
    throw new \InvalidArgumentException('Invalid configuration synchronization step');
  }
  \Drupal::service('config.installer')
    ->setSyncing(FALSE);
}