[DependencyInjection] Fix dumping multiple deprecated aliases

This commit is contained in:
Soner Sayakci 2019-11-19 11:37:15 +01:00
parent a7c66dbfb3
commit 60b0dae174
No known key found for this signature in database
GPG Key ID: C744D31BC99BCBB9
2 changed files with 25 additions and 1 deletions

View File

@ -1226,7 +1226,7 @@ EOF;
$methodNameAlias = $this->generateMethodName($alias);
$idExported = $this->export($id);
$messageExported = $this->export($definition->getDeprecationMessage($alias));
$code = <<<EOF
$code .= <<<EOF
/*{$this->docStar}
* Gets the $public '$alias' alias.

View File

@ -1283,6 +1283,30 @@ class PhpDumperTest extends TestCase
$wither = $container->get('wither');
$this->assertInstanceOf(Foo::class, $wither->foo);
}
/**
* @group legacy
* @expectedDeprecation The "deprecated1" service alias is deprecated. You should stop using it, as it will be removed in the future.
* @expectedDeprecation The "deprecated2" service alias is deprecated. You should stop using it, as it will be removed in the future.
*/
public function testMultipleDeprecatedAliasesWorking()
{
$container = new ContainerBuilder();
$container->setDefinition('bar', new Definition('stdClass'))->setPublic(true);
$container->setAlias('deprecated1', 'bar')->setPublic(true)->setDeprecated('%alias_id% is deprecated');
$container->setAlias('deprecated2', 'bar')->setPublic(true)->setDeprecated('%alias_id% is deprecated');
$container->compile();
$dumper = new PhpDumper($container);
$dump = $dumper->dump(['class' => $class = __FUNCTION__]);
eval('?>'.$dump);
$container = new $class();
$this->assertInstanceOf(\stdClass::class, $container->get('bar'));
$this->assertInstanceOf(\stdClass::class, $container->get('deprecated1'));
$this->assertInstanceOf(\stdClass::class, $container->get('deprecated2'));
}
}
class Rot13EnvVarProcessor implements EnvVarProcessorInterface