Skip to content

Commit 224f690

Browse files
committed
[FrameworkBundle] Fix config builder with extensions extended in build()
1 parent f30cf8a commit 224f690

File tree

2 files changed

+359
-10
lines changed

2 files changed

+359
-10
lines changed

CacheWarmer/ConfigBuilderCacheWarmer.php

+20-4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
2323
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
2424
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
25+
use Symfony\Component\HttpKernel\Kernel;
2526
use Symfony\Component\HttpKernel\KernelInterface;
2627

2728
/**
@@ -49,12 +50,27 @@ public function warmUp(string $cacheDir)
4950
{
5051
$generator = new ConfigBuilderGenerator($this->kernel->getBuildDir());
5152

52-
foreach ($this->kernel->getBundles() as $bundle) {
53-
$extension = $bundle->getContainerExtension();
54-
if (null === $extension) {
55-
continue;
53+
if ($this->kernel instanceof Kernel) {
54+
/** @var ContainerBuilder $container */
55+
$container = \Closure::bind(function (Kernel $kernel) {
56+
$containerBuilder = $kernel->getContainerBuilder();
57+
$kernel->prepareContainer($containerBuilder);
58+
59+
return $containerBuilder;
60+
}, null, $this->kernel)($this->kernel);
61+
62+
$extensions = $container->getExtensions();
63+
} else {
64+
$extensions = [];
65+
foreach ($this->kernel->getBundles() as $bundle) {
66+
$extension = $bundle->getContainerExtension();
67+
if (null !== $extension) {
68+
$extensions[] = $extension;
69+
}
5670
}
71+
}
5772

73+
foreach ($extensions as $extension) {
5874
try {
5975
$this->dumpExtension($extension, $generator);
6076
} catch (\Exception $e) {

0 commit comments

Comments
 (0)