private function configImport($io, StorageComparer $storage_comparer) { $config_importer = new ConfigImporter($storage_comparer, \Drupal::service('event_dispatcher'), \Drupal::service('config.manager'), \Drupal::lock(), \Drupal::service('config.typed'), \Drupal::moduleHandler(), \Drupal::service('module_installer'), \Drupal::service('theme_handler'), \Drupal::service('string_translation')); if ($config_importer->alreadyImporting()) { $io->success($this->trans('commands.config.import.messages.already-imported')); } else { try { if ($config_importer->validate()) { $sync_steps = $config_importer->initialize(); foreach ($sync_steps as $step) { $context = array(); do { $config_importer->doSyncStep($step, $context); } while ($context['finished'] < 1); } } } catch (ConfigImporterException $e) { $message = 'The import failed due for the following reasons:' . "\n"; $message .= implode("\n", $config_importer->getErrors()); $io->error(sprintf($this->trans('commands.site.import.local.messages.error-writing'), $message)); } catch (\Exception $e) { $io->error(sprintf($this->trans('commands.site.import.local.messages.error-writing'), $e->getMessage())); } } }
/** * Tests that the isConfigSyncing flag is set correctly during a custom step. */ public function testCustomStep() { $this->assertFalse(\Drupal::isConfigSyncing(), 'Before an import \\Drupal::isConfigSyncing() returns FALSE'); $context = []; $this->configImporter->doSyncStep([self::class, 'customStep'], $context); $this->assertTrue($context['is_syncing'], 'Inside a custom step \\Drupal::isConfigSyncing() returns TRUE'); $this->assertFalse(\Drupal::isConfigSyncing(), 'After an valid custom step \\Drupal::isConfigSyncing() returns FALSE'); }