8000 [FrameworkBundle] Alter container class instead of kernel name in cac… · symfony/symfony@c905536 · GitHub
[go: up one dir, main page]

Skip to content

Commit c905536

Browse files
[FrameworkBundle] Alter container class instead of kernel name in cache:clear command
1 parent 3086fd3 commit c905536

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

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

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,13 @@ protected function warmup($warmupDir, $realCacheDir, $enableOptionalWarmers = tr
157157
file_put_contents($file, $content);
158158
}
159159

160-
// fix references to kernel/container related classes
161-
$fileSearch = $tempKernel->getName().ucfirst($tempKernel->getEnvironment()).'*';
162-
$search = array(
163-
$tempKernel->getName().ucfirst($tempKernel->getEnvironment()),
164-
sprintf('\'kernel.name\' => \'%s\'', $tempKernel->getName()),
165-
sprintf('key="kernel.name">%s<', $tempKernel->getName()),
166-
);
167-
$replace = array(
168-
$realKernel->getName().ucfirst($realKernel->getEnvironment()),
169-
sprintf('\'kernel.name\' => \'%s\'', $realKernel->getName()),
170-
sprintf('key="kernel.name">%s<', $realKernel->getName()),
171-
);
172-
foreach (Finder::create()->files()->name($fileSearch)->in($warmupDir) as $file) {
173-
$content = str_replace($search, $replace, file_get_contents($file));
174-
file_put_contents(str_replace($search, $replace, $file), $content);
175-
unlink($file);
160+
// fix references to container's class
161+
$tempContainerClass = get_class($tempKernel->getContainer());
162+
$realContainerClass = get_class($realKernel->getContainer());
163+
foreach (Finder::create()->files()->name($tempContainerClass.'*')->in($warmupDir) as $file) {
164+
$content = str_replace($tempContainerClass, $realContainerClass, file_get_contents($file));
165+
file_put_contents($file, $content);
166+
rename($file, str_replace(DIRECTORY_SEPARATOR.$tempContainerClass, DIRECTORY_SEPARATOR.$realContainerClass, $file));
176167
}
177168

178169
// remove temp kernel file after cache warmed up
@@ -195,8 +186,8 @@ protected function getTempKernel(KernelInterface $parent, $namespace, $parentCla
195186
// the temp kernel class name must have the same length than the real one
196187
// to avoid the many problems in serialized resources files
197188
$class = substr($parentClass, 0, -1).'_';
198-
// the temp kernel name must be changed too
199-
$name = var_export(substr($parent->getName(), 0, -1).'_', true);
189+
// the temp container class must be changed too
190+
$containerClass = var_export(substr(get_class($parent->getContainer()), 0, -1).'_', true);
200191
$code = <<<EOF
201192
<?php
202193
@@ -209,11 +200,6 @@ public function getCacheDir()
209200
return $cacheDir;
210201
}
211202
212-
public function getName()
213-
{
214-
return $name;
215-
}
216-
217203
public function getRootDir()
218204
{
219205
return $rootDir;
@@ -224,6 +210,11 @@ public function getLogDir()
224210
return $logDir;
225211
}
226212
213+
protected function getContainerClass()
214+
{
215+
return $containerClass;
216+
}
217+
227218
protected function buildContainer()
228219
{
229220
\$container = parent::buildContainer();

0 commit comments

Comments
 (0)
0