[FrameworkBundle] cleanup generated test container
This commit is contained in:
parent
755815993d
commit
d8cbec00ad
@ -27,13 +27,21 @@ class TestServiceContainerRealRefPass implements CompilerPassInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$testContainer = $container->getDefinition('test.service_container');
|
$testContainer = $container->getDefinition('test.service_container');
|
||||||
$privateContainer = $container->getDefinition((string) $testContainer->getArgument(2));
|
$privateContainer = $testContainer->getArgument(2);
|
||||||
|
if ($privateContainer instanceof Reference) {
|
||||||
|
$privateContainer = $container->getDefinition((string) $privateContainer);
|
||||||
|
}
|
||||||
$definitions = $container->getDefinitions();
|
$definitions = $container->getDefinitions();
|
||||||
|
$privateServices = $privateContainer->getArgument(0);
|
||||||
|
|
||||||
foreach ($privateContainer->getArgument(0) as $id => $argument) {
|
foreach ($privateServices as $id => $argument) {
|
||||||
if (isset($definitions[$target = (string) $argument->getValues()[0]])) {
|
if (isset($definitions[$target = (string) $argument->getValues()[0]])) {
|
||||||
$argument->setValues(array(new Reference($target)));
|
$argument->setValues(array(new Reference($target)));
|
||||||
|
} else {
|
||||||
|
unset($privateServices[$id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$privateContainer->replaceArgument(0, $privateServices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ class TestServiceContainerWeakRefPass implements CompilerPassInterface
|
|||||||
$definitions = $container->getDefinitions();
|
$definitions = $container->getDefinitions();
|
||||||
|
|
||||||
foreach ($definitions as $id => $definition) {
|
foreach ($definitions as $id => $definition) {
|
||||||
if ((!$definition->isPublic() || $definition->isPrivate()) && !$definition->getErrors() && !$definition->isAbstract()) {
|
if ($id && '.' !== $id[0] && (!$definition->isPublic() || $definition->isPrivate()) && !$definition->getErrors() && !$definition->isAbstract()) {
|
||||||
$privateServices[$id] = new ServiceClosureArgument(new Reference($id, ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE));
|
$privateServices[$id] = new ServiceClosureArgument(new Reference($id, ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -39,7 +39,7 @@ class TestServiceContainerWeakRefPass implements CompilerPassInterface
|
|||||||
$aliases = $container->getAliases();
|
$aliases = $container->getAliases();
|
||||||
|
|
||||||
foreach ($aliases as $id => $alias) {
|
foreach ($aliases as $id => $alias) {
|
||||||
if (!$alias->isPublic() || $alias->isPrivate()) {
|
if ($id && '.' !== $id[0] && (!$alias->isPublic() || $alias->isPrivate())) {
|
||||||
while (isset($aliases[$target = (string) $alias])) {
|
while (isset($aliases[$target = (string) $alias])) {
|
||||||
$alias = $aliases[$target];
|
$alias = $aliases[$target];
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,6 @@ class TestServiceContainerTest extends WebTestCase
|
|||||||
$this->assertTrue(static::$container->has(NonPublicService::class));
|
$this->assertTrue(static::$container->has(NonPublicService::class));
|
||||||
$this->assertTrue(static::$container->has(PrivateService::class));
|
$this->assertTrue(static::$container->has(PrivateService::class));
|
||||||
$this->assertTrue(static::$container->has('private_service'));
|
$this->assertTrue(static::$container->has('private_service'));
|
||||||
$this->assertTrue(static::$container->has(UnusedPrivateService::class));
|
$this->assertFalse(static::$container->has(UnusedPrivateService::class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user