public function ChangeSyncForm::submitForm in Demonstration site (Sandbox / Snapshot) 8
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
- src/
Form/ ChangeSyncForm.php, line 321
Class
- ChangeSyncForm
- Construct the storage changes in a configuration synchronization form.
Namespace
Drupal\demo\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());
if ($config_importer
->alreadyImporting()) {
\Drupal::messenger()
->addMessage($this
->t('Another request may be synchronizing configuration already.'));
}
else {
try {
$sync_steps = $config_importer
->initialize();
$batch = [
'operations' => [],
'finished' => [
get_class($this),
'finishBatch',
],
'title' => t('Synchronizing configuration'),
'init_message' => t('Starting configuration synchronization.'),
'progress_message' => t('Completed step @current of @total.'),
'error_message' => t('Configuration synchronization has encountered an error.'),
'file' => __DIR__ . '/../../config.admin.inc',
];
foreach ($sync_steps as $sync_step) {
$batch['operations'][] = [
[
get_class($this),
'processBatch',
],
[
$config_importer,
$sync_step,
],
];
}
batch_set($batch);
} catch (ConfigImporterException $e) {
// There are validation errors.
\Drupal::messenger()
->addError($this
->t('The configuration cannot be imported because it failed validation for the following reasons:'));
foreach ($config_importer
->getErrors() as $message) {
\Drupal::messenger()
->addMessage($message);
}
}
}
}