[DI] Fixed bug requesting non existing service from dumped frozen container

This commit is contained in:
WouterJ 2013-07-07 14:58:42 +02:00 committed by Fabien Potencier
parent f03a4894d5
commit 8bb4e4d332
4 changed files with 21 additions and 1 deletions

View File

@ -849,7 +849,11 @@ EOF;
private function addAliases()
{
if (!$aliases = $this->container->getAliases()) {
return '';
if ($this->container->isFrozen()) {
return "\n \$this->aliases = array();\n";
} else {
return '';
}
}
$code = " \$this->aliases = array(\n";

View File

@ -134,6 +134,18 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase
$this->assertSame($foo, $container->get('alias_for_alias'));
}
public function testFrozenContainerWithoutAliases()
{
$container = new ContainerBuilder();
$container->compile();
$dumper = new PhpDumper($container);
eval('?>'.$dumper->dump(array('class' => 'Symfony_DI_PhpDumper_Test_Frozen_No_Aliases')));
$container = new \Symfony_DI_PhpDumper_Test_Frozen_No_Aliases();
$this->assertFalse($container->has('foo'));
}
public function testOverrideServiceWhenUsingADumpedContainer()
{
require_once self::$fixturesPath.'/php/services9.php';

View File

@ -36,6 +36,8 @@ class ProjectServiceContainer extends Container
$this->methodMap = array(
'test' => 'getTestService',
);
$this->aliases = array();
}
/**

View File

@ -34,6 +34,8 @@ class ProjectServiceContainer extends Container
$this->methodMap = array(
'foo' => 'getFooService',
);
$this->aliases = array();
}
/**