From 5a995bd97efc231ead0b6cc94e040d49c535ff94 Mon Sep 17 00:00:00 2001 From: WouterJ Date: Sat, 27 Feb 2016 01:01:27 +0100 Subject: [PATCH 1/2] Fix bug when using an private aliased factory service --- .../Compiler/ReplaceAliasByActualDefinitionPass.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php index fef070bcff07e..e1c6f2ec63b43 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php @@ -131,6 +131,6 @@ private function updateFactoryServiceReference($factoryService, $currentId, $new return; } - return $currentId === $factoryService ? $newId : $currentId; + return $currentId === $factoryService ? $newId : $factoryService; } } From 70c32c4af686a5c6cde6c084430d6d1bf68e9e9d Mon Sep 17 00:00:00 2001 From: WouterJ Date: Sat, 27 Feb 2016 15:47:20 +0100 Subject: [PATCH 2/2] Add failing test case --- ...ReplaceAliasByActualDefinitionPassTest.php | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php index ac1609f5d7d58..1381369ce59bc 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php @@ -15,6 +15,8 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; +require_once __DIR__.'/../Fixtures/includes/foo.php'; + class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase { public function testProcess() @@ -44,6 +46,26 @@ public function testProcess() $this->assertSame('b_alias', $aDefinition->getFactoryService()); } + /** + * @group legacy + */ + public function testPrivateAliasesInFactory() + { + $container = new ContainerBuilder(); + + $container->register('a', 'FooClass'); + $container->register('b', 'FooClass') + ->setFactoryService('a') + ->setFactoryMethod('getInstance'); + + $container->register('c', 'stdClass')->setPublic(false); + $container->setAlias('c_alias', 'c'); + + $this->process($container); + + $this->assertInstanceOf('FooClass', $container->get('b')); + } + /** * @expectedException \InvalidArgumentException */ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy