public function ConfigSync::submitForm in Drupal 9
Same name and namespace in other branches
- 8 core/modules/config/src/Form/ConfigSync.php \Drupal\config\Form\ConfigSync::submitForm()
- 10 core/modules/config/src/Form/ConfigSync.php \Drupal\config\Form\ConfigSync::submitForm()
Form submission handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormInterface::submitForm
File
- core/
modules/ config/ src/ Form/ ConfigSync.php, line 349
Class
- ConfigSync
- Construct the storage changes in a configuration synchronization form.
Namespace
Drupal\config\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
$config_importer = new ConfigImporter($form_state
->get('storage_comparer'), $this->eventDispatcher, $this->configManager, $this->lock, $this->typedConfigManager, $this->moduleHandler, $this->moduleInstaller, $this->themeHandler, $this
->getStringTranslation(), $this->moduleExtensionList);
if ($config_importer
->alreadyImporting()) {
$this
->messenger()
->addStatus($this
->t('Another request may be synchronizing configuration already.'));
}
else {
try {
$sync_steps = $config_importer
->initialize();
$batch_builder = (new BatchBuilder())
->setTitle($this
->t('Synchronizing configuration'))
->setFinishCallback([
ConfigImporterBatch::class,
'finish',
])
->setInitMessage($this
->t('Starting configuration synchronization.'))
->setProgressMessage($this
->t('Completed step @current of @total.'))
->setErrorMessage($this
->t('Configuration synchronization has encountered an error.'));
foreach ($sync_steps as $sync_step) {
$batch_builder
->addOperation([
ConfigImporterBatch::class,
'process',
], [
$config_importer,
$sync_step,
]);
}
batch_set($batch_builder
->toArray());
} catch (ConfigImporterException $e) {
// There are validation errors.
$this
->messenger()
->addError($this
->t('The configuration cannot be imported because it failed validation for the following reasons:'));
foreach ($config_importer
->getErrors() as $message) {
$this
->messenger()
->addError($message);
}
}
}
}