[FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable
This commit is contained in:
parent
4222a72ee8
commit
54c965c7d0
@ -170,6 +170,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', <<<EOPHP
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if (file_exists(__DIR__.$preloadFile)) {
|
||||||
|
require __DIR__.$preloadFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
EOPHP
|
||||||
|
);
|
||||||
|
|
||||||
if ($output->isVerbose()) {
|
if ($output->isVerbose()) {
|
||||||
$io->comment('Finished');
|
$io->comment('Finished');
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ class CacheClearCommandTest extends TestCase
|
|||||||
protected function tearDown(): void
|
protected function tearDown(): void
|
||||||
{
|
{
|
||||||
$this->fs->remove($this->kernel->getProjectDir());
|
$this->fs->remove($this->kernel->getProjectDir());
|
||||||
|
$this->fs->remove(__DIR__.'/Fixture/preload.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCacheIsFreshAfterCacheClearedWithWarmup()
|
public function testCacheIsFreshAfterCacheClearedWithWarmup()
|
||||||
@ -82,5 +83,7 @@ class CacheClearCommandTest extends TestCase
|
|||||||
$containerRef = new \ReflectionClass(require $containerFile);
|
$containerRef = new \ReflectionClass(require $containerFile);
|
||||||
$containerFile = str_replace('tes_'.\DIRECTORY_SEPARATOR, 'test'.\DIRECTORY_SEPARATOR, $containerRef->getFileName());
|
$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->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');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (file_exists(__DIR__.'/test/var/cache/test/FixtureSymfony_Bundle_FrameworkBundle_Tests_Command_CacheClearCommand_Fixture_TestAppKernelTestDebugContainer.preload.php')) {
|
||||||
|
require __DIR__.'/test/var/cache/test/FixtureSymfony_Bundle_FrameworkBundle_Tests_Command_CacheClearCommand_Fixture_TestAppKernelTestDebugContainer.preload.php';
|
||||||
|
}
|
Reference in New Issue
Block a user