BcConfigSubscriber.php

Namespace

Drupal\serialization\EventSubscriber

File

core/modules/serialization/src/EventSubscriber/BcConfigSubscriber.php

View source
<?php

namespace Drupal\serialization\EventSubscriber;

use Drupal\Core\Config\ConfigCrudEvent;
use Drupal\Core\Config\ConfigEvents;
use Drupal\Core\DrupalKernelInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Config event subscriber to rebuild the container when BC config is saved.
 */
class BcConfigSubscriber implements EventSubscriberInterface {
    
    /**
     * The Drupal Kernel.
     *
     * @var \Drupal\Core\DrupalKernelInterface
     */
    protected $kernel;
    
    /**
     * BcConfigSubscriber constructor.
     *
     * @param \Drupal\Core\DrupalKernelInterface $kernel
     *   The Drupal Kernel.
     */
    public function __construct(DrupalKernelInterface $kernel) {
        $this->kernel = $kernel;
    }
    
    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents() {
        $events[ConfigEvents::SAVE][] = 'onConfigSave';
        return $events;
    }
    
    /**
     * Invalidates the service container if serialization BC config gets updated.
     *
     * @param \Drupal\Core\Config\ConfigCrudEvent $event
     */
    public function onConfigSave(ConfigCrudEvent $event) {
        $saved_config = $event->getConfig();
        if ($saved_config->getName() === 'serialization.settings') {
            if ($event->isChanged('bc_primitives_as_strings') || $event->isChanged('bc_timestamp_normalizer_unix')) {
                $this->kernel
                    ->invalidateContainer();
            }
        }
    }

}

Classes

Title Deprecated Summary
BcConfigSubscriber Config event subscriber to rebuild the container when BC config is saved.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.