diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php index 29791ab119..71d97be8d1 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php @@ -175,6 +175,20 @@ EOF } } + $kernelDir = \dirname((new \ReflectionObject($kernel))->getFileName()); + $preloadFile = $fs->makePathRelative(\dirname($containerFile, 2), $kernelDir); + $preloadFile .= substr_replace(basename($containerFile), '.preload', -4, 0); + $preloadFile = var_export('/'.$preloadFile, true); + @file_put_contents($kernelDir.'/preload.php', <<isVerbose()) { $io->comment('Finished'); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php index 4b557011a9..c4192f6cc2 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php @@ -38,6 +38,7 @@ class CacheClearCommandTest extends TestCase protected function tearDown(): void { $this->fs->remove($this->kernel->getProjectDir()); + $this->fs->remove(__DIR__.'/Fixture/preload.php'); } public function testCacheIsFreshAfterCacheClearedWithWarmup() @@ -82,5 +83,7 @@ class CacheClearCommandTest extends TestCase $containerRef = new \ReflectionClass(require $containerFile); $containerFile = str_replace('tes_'.\DIRECTORY_SEPARATOR, 'test'.\DIRECTORY_SEPARATOR, $containerRef->getFileName()); $this->assertMatchesRegularExpression(sprintf('/\'kernel.container_class\'\s*=>\s*\'%s\'/', $containerClass), file_get_contents($containerFile), 'kernel.container_class is properly set on the dumped container'); + + $this->assertFileEquals(__DIR__.'/Fixture/preload.php.expected', __DIR__.'/Fixture/preload.php'); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/Fixture/preload.php.expected b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/Fixture/preload.php.expected new file mode 100644 index 0000000000..4b9461981b --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/Fixture/preload.php.expected @@ -0,0 +1,5 @@ +