/** * {@inheritDoc} */ public function process(ContainerBuilder $container) { if (!$this->integrationExtension->isNotifierEnabled() || !$this->integrationExtension->isNotifierReplaceSfEventDispatcher()) { return; } $dispatcherServiceId = 'event_dispatcher'; while ($container->hasAlias($dispatcherServiceId)) { $dispatcherServiceId = $container->getAlias($dispatcherServiceId); } $dispatcherDefinition = $container->getDefinition($dispatcherServiceId); $dispatcherDefinition->setPublic(false); $container->removeDefinition($dispatcherServiceId); $container->setDefinition('event_dispatcher.symfony', $dispatcherDefinition); $notifierDispatcherDefinition = $container->getDefinition('event_dispatcher.notifier_proxy'); $notifierDispatcherDefinition->replaceArgument(0, new Reference('event_dispatcher.symfony')); $notifierDispatcherDefinition->replaceArgument(2, $this->integrationExtension->getNotifierEventNamesForDisableNotification()); $notifierDispatcherDefinition->setAbstract(false); $container->setAlias('event_dispatcher', 'event_dispatcher.notifier_proxy'); }