Version 1
[yaffs-website] / web / core / modules / config / tests / config_events_test / src / EventSubscriber.php
diff --git a/web/core/modules/config/tests/config_events_test/src/EventSubscriber.php b/web/core/modules/config/tests/config_events_test/src/EventSubscriber.php
new file mode 100644 (file)
index 0000000..98417c0
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+
+namespace Drupal\config_events_test;
+
+
+use Drupal\Core\Config\ConfigCrudEvent;
+use Drupal\Core\Config\ConfigEvents;
+use Drupal\Core\State\StateInterface;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+class EventSubscriber implements EventSubscriberInterface {
+
+  /**
+   * The state key value store.
+   *
+   * @var \Drupal\Core\State\StateInterface
+   */
+  protected $state;
+
+  /**
+   * Constructs the Event Subscriber object.
+   *
+   * @param \Drupal\Core\State\StateInterface $state
+   *   The state key value store.
+   */
+  public function __construct(StateInterface $state) {
+    $this->state = $state;
+  }
+
+  /**
+   * Reacts to config event.
+   *
+   * @param \Drupal\Core\Config\ConfigCrudEvent $event
+   *   The configuration event.
+   * @param string $name
+   *   The event name.
+   */
+  public function configEventRecorder(ConfigCrudEvent $event, $name) {
+    $config = $event->getConfig();
+    $this->state->set('config_events_test.event', [
+      'event_name' => $name,
+      'current_config_data' => $config->get(),
+      'original_config_data' => $config->getOriginal(),
+      'raw_config_data' => $config->getRawData()
+    ]);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents() {
+    $events[ConfigEvents::SAVE][] = ['configEventRecorder'];
+    $events[ConfigEvents::DELETE][] = ['configEventRecorder'];
+    $events[ConfigEvents::RENAME][] = ['configEventRecorder'];
+    return $events;
+  }
+
+}