diff --git a/core/lib/Drupal/Core/Extension/ModuleInstaller.php b/core/lib/Drupal/Core/Extension/ModuleInstaller.php index 412cdeb..c7473b6 100644 --- a/core/lib/Drupal/Core/Extension/ModuleInstaller.php +++ b/core/lib/Drupal/Core/Extension/ModuleInstaller.php @@ -212,8 +212,7 @@ public function install(array $module_list, $enable_dependencies = TRUE) { $version = max(max($versions), $version); } - /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher */ - $event_dispatcher = $this->kernel->getContainer()->get('event_dispatcher'); + $event_dispatcher = $this->getEventDispatcher(); $event = new ModuleEvent($module); $event_dispatcher->dispatch(ModuleEvents::MODULE_INSTALLED, $event); @@ -358,7 +357,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) { \Drupal::service('config.manager')->uninstall('module', $module); /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher */ - $event_dispatcher = $this->kernel->getContainer()->get('event_dispatcher'); + $event_dispatcher = $this->getEventDispatcher(); $event = new ModuleEvent($module); $event_dispatcher->dispatch(ModuleEvents::MODULE_UNINSTALLED, $event); @@ -501,4 +500,17 @@ public function validateUninstall(array $module_list) { return $reasons; } + /** + * Gets the event dispatcher from the current container. + * + * After the module installation we want to ensure to we are not using an old + * version of the event dispatcher. + * + * @return \Symfony\Component\EventDispatcher\EventDispatcherInterface + * The event dispatcher. + */ + protected function getEventDispatcher() { + return $this->kernel->getContainer()->get('event_dispatcher'); + } + }