Skip to content

Commit 4d11d80

Browse files
[FrameworkBundle] Add default pool & system adapter
1 parent a331f7d commit 4d11d80

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

Compiler/ResolveDefinitionTemplatesPass.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use Symfony\Component\DependencyInjection\DefinitionDecorator;
1616
use Symfony\Component\DependencyInjection\ContainerBuilder;
1717
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
18-
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
1918

2019
/**
2120
* This replaces all DefinitionDecorator instances with their equivalent fully
@@ -97,12 +96,11 @@ private function resolveArguments(ContainerBuilder $container, array $arguments,
9796
*/
9897
private function resolveDefinition(ContainerBuilder $container, DefinitionDecorator $definition)
9998
{
100-
try {
101-
$parentDef = $container->findDefinition($parent = $definition->getParent());
102-
} catch (ServiceNotFoundException $e) {
99+
if (!$container->has($parent = $definition->getParent())) {
103100
throw new RuntimeException(sprintf('The parent definition "%s" defined for definition "%s" does not exist.', $parent, $this->currentId));
104101
}
105102

103+
$parentDef = $container->findDefinition($parent);
106104
if ($parentDef instanceof DefinitionDecorator) {
107105
$id = $this->currentId;
108106
$this->currentId = $parent;

Tests/Compiler/ResolveDefinitionTemplatesPassTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,20 @@ public function testProcessMergeAutowiringTypes()
309309
$this->assertEquals(array('Foo', 'Bar'), $def->getAutowiringTypes());
310310
}
311311

312+
public function testProcessResolvesAliases()
313+
{
314+
$container = new ContainerBuilder();
315+
316+
$container->register('parent', 'ParentClass');
317+
$container->setAlias('parent_alias', 'parent');
318+
$container->setDefinition('child', new DefinitionDecorator('parent_alias'));
319+
320+
$this->process($container);
321+
322+
$def = $container->getDefinition('child');
323+
$this->assertSame('ParentClass', $def->getClass());
324+
}
325+
312326
protected function process(ContainerBuilder $container)
313327
{
314328
$pass = new ResolveDefinitionTemplatesPass();

0 commit comments

Comments
 (0)