Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b58f060

Browse files
[FrameworkBundle] Fix perf issue in CacheClearCommand::warmup()
1 parent 658236b commit b58f060

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ protected function warmup($warmupDir, $realCacheDir, $enableOptionalWarmers = tr
141141
$safeTempKernel = str_replace('\\', '\\\\', get_class($tempKernel));
142142
$realKernelFQN = get_class($realKernel);
143143

144-
foreach (Finder::create()->files()->name('*.meta')->in($warmupDir) as $file) {
144+
foreach (Finder::create()->files()->depth('<3')->name('*.meta')->in($warmupDir) as $file) {
145145
file_put_contents($file, preg_replace(
146146
'/(C\:\d+\:)"'.$safeTempKernel.'"/',
147147
sprintf('$1"%s"', $realKernelFQN),
@@ -153,14 +153,16 @@ protected function warmup($warmupDir, $realCacheDir, $enableOptionalWarmers = tr
153153
$search = array($warmupDir, str_replace('\\', '\\\\', $warmupDir));
154154
$replace = str_replace('\\', '/', $realCacheDir);
155155
foreach (Finder::create()->files()->in($warmupDir) as $file) {
156-
$content = str_replace($search, $replace, file_get_contents($file));
157-
file_put_contents($file, $content);
156+
$content = str_replace($search, $replace, file_get_contents($file), $count);
157+
if ($count) {
158+
file_put_contents($file, $content);
159+
}
158160
}
159161

160162
// fix references to container's class
161163
$tempContainerClass = get_class($tempKernel->getContainer());
162164
$realContainerClass = get_class($realKernel->getContainer());
163-
foreach (Finder::create()->files()->name($tempContainerClass.'*')->in($warmupDir) as $file) {
165+
foreach (Finder::create()->files()->depth('<2')->name($tempContainerClass.'*')->in($warmupDir) as $file) {
164166
$content = str_replace($tempContainerClass, $realContainerClass, file_get_contents($file));
165167
file_put_contents($file, $content);
166168
rename($file, str_replace(DIRECTORY_SEPARATOR.$tempContainerClass, DIRECTORY_SEPARATOR.$realContainerClass, $file));

0 commit comments

Comments
 (0)