779bab67ddcbb71c8dbb567f9842c0811eb29fa4
[yaffs-website] / web / core / modules / config / src / ConfigSubscriber.php
1 <?php
2
3 namespace Drupal\config;
4
5 use Drupal\Core\Config\ConfigEvents;
6 use Drupal\Core\Config\ConfigImporterEvent;
7 use Drupal\Core\Config\ConfigImportValidateEventSubscriberBase;
8
9 /**
10  * Config subscriber.
11  */
12 class ConfigSubscriber extends ConfigImportValidateEventSubscriberBase {
13
14   /**
15    * Checks that the Configuration module is not being uninstalled.
16    *
17    * @param \Drupal\Core\Config\ConfigImporterEvent $event
18    *   The config import event.
19    */
20   public function onConfigImporterValidate(ConfigImporterEvent $event) {
21     // Make sure config syncs performed via the Config UI don't break, but
22     // don't worry about syncs initiated via the command line.
23     if (PHP_SAPI === 'cli') {
24       return;
25     }
26     $importer = $event->getConfigImporter();
27     $core_extension = $importer->getStorageComparer()->getSourceStorage()->read('core.extension');
28     if (!isset($core_extension['module']['config'])) {
29       $importer->logError($this->t('Can not uninstall the Configuration module as part of a configuration synchronization through the user interface.'));
30     }
31   }
32
33   /**
34    * {@inheritdoc}
35    */
36   public static function getSubscribedEvents() {
37     $events[ConfigEvents::IMPORT_VALIDATE][] = ['onConfigImporterValidate', 20];
38     return $events;
39   }
40
41 }