comparison core/modules/serialization/src/EventSubscriber/BcConfigSubscriber.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 namespace Drupal\serialization\EventSubscriber;
4
5 use Drupal\Core\Config\ConfigCrudEvent;
6 use Drupal\Core\Config\ConfigEvents;
7 use Drupal\Core\DrupalKernelInterface;
8 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
9
10 /**
11 * Config event subscriber to rebuild the container when BC config is saved.
12 */
13 class BcConfigSubscriber implements EventSubscriberInterface {
14
15 /**
16 * The Drupal Kernel.
17 *
18 * @var \Drupal\Core\DrupalKernelInterface
19 */
20 protected $kernel;
21
22 /**
23 * BcConfigSubscriber constructor.
24 *
25 * @param \Drupal\Core\DrupalKernelInterface $kernel
26 * The Drupal Kernel.
27 */
28 public function __construct(DrupalKernelInterface $kernel) {
29 $this->kernel = $kernel;
30 }
31
32 /**
33 * {@inheritdoc}
34 */
35 public static function getSubscribedEvents() {
36 $events[ConfigEvents::SAVE][] = 'onConfigSave';
37 return $events;
38 }
39
40 /**
41 * Invalidates the service container if serialization BC config gets updated.
42 *
43 * @param \Drupal\Core\Config\ConfigCrudEvent $event
44 */
45 public function onConfigSave(ConfigCrudEvent $event) {
46 $saved_config = $event->getConfig();
47
48 if ($saved_config->getName() === 'serialization.settings') {
49 if ($event->isChanged('bc_primitives_as_strings') || $event->isChanged('bc_timestamp_normalizer_unix')) {
50 $this->kernel->invalidateContainer();
51 }
52 }
53 }
54
55 }