From 2f102391ccabaedc12882b19bae7991dc5a367b7 Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Thu, 25 Nov 2021 15:19:39 +0100 Subject: [PATCH] IBX-88: Overridden Symfony debug:config command to use custom ContainerBuilder --- .../Command/BuildDebugContainerTrait.php | 57 +++++++++++++++++++ .../Command/SymfonyConfigDebugCommand.php | 21 +++++++ src/bundle/Resources/config/services.yaml | 2 + 3 files changed, 80 insertions(+) create mode 100644 src/bundle/Command/BuildDebugContainerTrait.php create mode 100644 src/bundle/Command/SymfonyConfigDebugCommand.php diff --git a/src/bundle/Command/BuildDebugContainerTrait.php b/src/bundle/Command/BuildDebugContainerTrait.php new file mode 100644 index 0000000..d8c023b --- /dev/null +++ b/src/bundle/Command/BuildDebugContainerTrait.php @@ -0,0 +1,57 @@ +containerBuilder) { + return $this->containerBuilder; + } + + if (!$kernel->isDebug() || !(new ConfigCache($kernel->getContainer()->getParameter('debug.container.dump'), true))->isFresh()) { + $buildContainer = \Closure::bind(function () { + $this->initializeBundles(); + + return $this->buildContainer(); + }, $kernel, \get_class($kernel)); + $container = $buildContainer(); + $container->getCompilerPassConfig()->setRemovingPasses([]); + $container->getCompilerPassConfig()->setAfterRemovingPasses([]); + $container->compile(); + } else { + (new XmlFileLoader($container = new ContainerBuilder(), new FileLocator()))->load($kernel->getContainer()->getParameter('debug.container.dump')); + $locatorPass = new ServiceLocatorTagPass(); + $locatorPass->process($container); + } + + return $this->containerBuilder = $container; + } +} diff --git a/src/bundle/Command/SymfonyConfigDebugCommand.php b/src/bundle/Command/SymfonyConfigDebugCommand.php new file mode 100644 index 0000000..8a63196 --- /dev/null +++ b/src/bundle/Command/SymfonyConfigDebugCommand.php @@ -0,0 +1,21 @@ +