Skip to content

Commit f55e103

Browse files
Merge branch '2.7' into 2.8
* 2.7: [FrameworkBundle] Alter container class instead of kernel name in cache:clear command [Console] Fix validation of null values using SymfonyStyle::ask() [Console] Escape default value and question in SymfonyStyle::ask()
2 parents 44452e9 + 0b7c3f2 commit f55e103

File tree

4 files changed

+17
-25
lines changed

4 files changed

+17
-25
lines changed

Command/CacheClearCommand.php

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

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

184175
// remove temp kernel file after cache warmed up
@@ -201,8 +192,8 @@ protected function getTempKernel(KernelInterface $parent, $namespace, $parentCla
201192
// the temp kernel class name must have the same length than the real one
202193
// to avoid the many problems in serialized resources files
203194
$class = substr($parentClass, 0, -1).'_';
204-
// the temp kernel name must be changed too
205-
$name = var_export(substr($parent->getName(), 0, -1).'_', true);
195+
// the temp container class must be changed too
196+
$containerClass = var_export(substr(get_class($parent->getContainer()), 0, -1).'_', true);
206197
$code = <<<EOF
207198
<?php
208199
@@ -215,11 +206,6 @@ public function getCacheDir()
215206
return $cacheDir;
216207
}
217208
218-
public function getName()
219-
{
220-
return $name;
221-
}
222-
223209
public function getRootDir()
224210
{
225211
return $rootDir;
@@ -230,6 +216,11 @@ public function getLogDir()
230216
return $logDir;
231217
}
232218
219+
protected function getContainerClass()
220+
{
221+
return $containerClass;
222+
}
223+
233224
protected function buildContainer()
234225
{
235226
\$container = parent::buildContainer();

DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ private function registerRouterConfiguration(array $config, ContainerBuilder $co
371371
$loader->load('routing.xml');
372372

373373
$container->setParameter('router.resource', $config['resource']);
374-
$container->setParameter('router.cache_class_prefix', $container->getParameter('kernel.name').ucfirst($container->getParameter('kernel.environment')));
374+
$container->setParameter('router.cache_class_prefix', $container->getParameter('kernel.container_class'));
375375
$router = $container->findDefinition('router.default');
376376
$argument = $router->getArgument(2);
377377
$argument['strict_requirements'] = $config['strict_requirements'];

Tests/Command/CacheClearCommand/CacheClearCommandTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,6 @@ public function testCacheIsFreshAfterCacheClearedWithWarmup()
8181
}
8282
}
8383
$this->assertTrue($found, 'Kernel file should present as resource');
84-
$this->assertRegExp(sprintf('/\'kernel.name\'\s*=>\s*\'%s\'/', $this->kernel->getName()), file_get_contents($containerFile), 'kernel.name is properly set on the dumped container');
84+
$this->assertRegExp(sprintf('/\'kernel.container_class\'\s*=>\s*\'%s\'/', get_class($this->kernel->getContainer())), file_get_contents($containerFile), 'kernel.container_class is properly set on the dumped container');
8585
}
8686
}

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ protected function createContainer(array $data = array())
518518
'kernel.environment' => 'test',
519519
'kernel.name' => 'kernel',
520520
'kernel.root_dir' => __DIR__,
521+
'kernel.container_class' => 'testContainer',
521522
), $data)));
522523
}
523524

0 commit comments

Comments
 (0)