Skip to content

Commit ac84cb2

Browse files
[HttpKernel] handle anonymous classes when generating the dumped container class name
1 parent 6612250 commit ac84cb2

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/Symfony/Component/HttpKernel/Kernel.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,10 @@ public function getBundles()
225225
public function getBundle($name)
226226
{
227227
if (!isset($this->bundles[$name])) {
228-
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your %s.php file?', $name, \get_class($this)));
228+
$class = \get_class($this);
229+
$class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class;
230+
231+
throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your %s.php file?', $name, $class));
229232
}
230233

231234
return $this->bundles[$name];
@@ -443,7 +446,10 @@ protected function build(ContainerBuilder $container)
443446
*/
444447
protected function getContainerClass()
445448
{
446-
return $this->name.str_replace('\\', '_', \get_class($this)).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
449+
$class = \get_class($this);
450+
$class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).ContainerBuilder::hash($class) : $class;
451+
452+
return $this->name.str_replace('\\', '_', $class).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container';
447453
}
448454

449455
/**

0 commit comments

Comments
 (0)