|
22 | 22 | use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
|
23 | 23 | use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
|
24 | 24 | use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
|
| 25 | +use Symfony\Component\HttpKernel\Kernel; |
25 | 26 | use Symfony\Component\HttpKernel\KernelInterface;
|
26 | 27 |
|
27 | 28 | /**
|
@@ -53,12 +54,27 @@ public function warmUp(string $cacheDir /* , string $buildDir = null */): array
|
53 | 54 |
|
54 | 55 | $generator = new ConfigBuilderGenerator($buildDir);
|
55 | 56 |
|
56 |
| - foreach ($this->kernel->getBundles() as $bundle) { |
57 |
| - $extension = $bundle->getContainerExtension(); |
58 |
| - if (null === $extension) { |
59 |
| - continue; |
| 57 | + if ($this->kernel instanceof Kernel) { |
| 58 | + /** @var ContainerBuilder $container */ |
| 59 | + $container = \Closure::bind(function (Kernel $kernel) { |
| 60 | + $containerBuilder = $kernel->getContainerBuilder(); |
| 61 | + $kernel->prepareContainer($containerBuilder); |
| 62 | + |
| 63 | + return $containerBuilder; |
| 64 | + }, null, $this->kernel)($this->kernel); |
| 65 | + |
| 66 | + $extensions = $container->getExtensions(); |
| 67 | + } else { |
| 68 | + $extensions = []; |
| 69 | + foreach ($this->kernel->getBundles() as $bundle) { |
| 70 | + $extension = $bundle->getContainerExtension(); |
| 71 | + if (null !== $extension) { |
| 72 | + $extensions[] = $extension; |
| 73 | + } |
60 | 74 | }
|
| 75 | + } |
61 | 76 |
|
| 77 | + foreach ($extensions as $extension) { |
62 | 78 | try {
|
63 | 79 | $this->dumpExtension($extension, $generator);
|
64 | 80 | } catch (\Exception $e) {
|
|
0 commit comments