diff --git a/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php index 0314ba680958..f324aa969cc3 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php @@ -237,6 +237,9 @@ private function processAnonymousServices(SimpleXMLElement $xml, $file) $definitions[(string) $node['id']] = array($node->service, $file, false); $node->service['id'] = (string) $node['id']; + + // anonymous services are always private + $node->service['public'] = false; } } @@ -254,9 +257,6 @@ private function processAnonymousServices(SimpleXMLElement $xml, $file) // resolve definitions krsort($definitions); foreach ($definitions as $id => $def) { - // anonymous services are always private - $def[0]['public'] = false; - $this->parseDefinition($id, $def[0], $def[1]); $oNode = dom_import_simplexml($def[0]); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php index 38ee13d5ff73..a8f8f35133ae 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php @@ -158,7 +158,7 @@ public function testLoadAnonymousServices() $service = $container->getDefinition($id); } $this->assertEquals('BizClass', $service->getClass(), '->load() uses the same configuration as for the anonymous ones'); - $this->assertFalse($service->isPublic()); + $this->assertTrue($service->isPublic()); // anonymous services are shared when using decoration definitions $container->compile();