top-level anonymous services must be public

This commit is contained in:
Christian Flothmann 2016-05-04 21:53:17 +02:00
parent af4ca4f48b
commit 13a47c3c6d
2 changed files with 4 additions and 4 deletions

View File

@ -237,6 +237,9 @@ class XmlFileLoader extends FileLoader
$definitions[(string) $node['id']] = array($node->service, $file, false); $definitions[(string) $node['id']] = array($node->service, $file, false);
$node->service['id'] = (string) $node['id']; $node->service['id'] = (string) $node['id'];
// anonymous services are always private
$node->service['public'] = false;
} }
} }
@ -254,9 +257,6 @@ class XmlFileLoader extends FileLoader
// resolve definitions // resolve definitions
krsort($definitions); krsort($definitions);
foreach ($definitions as $id => $def) { foreach ($definitions as $id => $def) {
// anonymous services are always private
$def[0]['public'] = false;
$this->parseDefinition($id, $def[0], $def[1]); $this->parseDefinition($id, $def[0], $def[1]);
$oNode = dom_import_simplexml($def[0]); $oNode = dom_import_simplexml($def[0]);

View File

@ -158,7 +158,7 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
$service = $container->getDefinition($id); $service = $container->getDefinition($id);
} }
$this->assertEquals('BizClass', $service->getClass(), '->load() uses the same configuration as for the anonymous ones'); $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 // anonymous services are shared when using decoration definitions
$container->compile(); $container->compile();