ConfigSubscriber.php in Menu Item Extras 8.2
File
src/EventSubscriber/ConfigSubscriber.php
View source
<?php
namespace Drupal\menu_item_extras\EventSubscriber;
use Drupal\Core\Config\ConfigEvents;
use Drupal\Core\Config\StorageTransformEvent;
use Drupal\Core\Config\ConfigInstallerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ConfigSubscriber implements EventSubscriberInterface {
protected $configInstaller;
public function __construct(ConfigInstallerInterface $configInstaller) {
$this->configInstaller = $configInstaller;
}
public static function getSubscribedEvents() {
$events[ConfigEvents::STORAGE_TRANSFORM_EXPORT][] = [
'onConfigExport',
];
return $events;
}
public function onConfigExport(StorageTransformEvent $event) {
$storage = $event
->getStorage();
$export_configs = $storage
->listAll();
foreach ($export_configs as $config_name) {
if (preg_match('@^.*\\.menu_link_content\\..*view_mode$@', $config_name)) {
$config = $storage
->read($config_name);
if (empty($config['dependencies']['module']) || !in_array('menu_item_extras', $config['dependencies']['module'], TRUE)) {
$config['dependencies']['module'][] = 'menu_item_extras';
$storage
->write($config_name, $config);
}
}
}
}
}
Classes
Name |
Description |
ConfigSubscriber |
Provides a ConfigSubscriber that adds a module dependency for all
configurations related to the view_mode field on menu_link_content entities
during a config export. |