[DependencyInjection] Fix using autowiring types when there are more than 2 services

This commit is contained in:
Guilhem Niot 2017-02-19 12:32:55 +01:00
parent 33bae93a44
commit 5981278537
No known key found for this signature in database
GPG Key ID: 7A655BEB5BDC1CA6
2 changed files with 4 additions and 2 deletions

View File

@ -169,6 +169,7 @@ class AutowirePass implements CompilerPassInterface
foreach ($definition->getAutowiringTypes() as $type) {
$this->definedTypes[$type] = true;
$this->types[$type] = $id;
unset($this->notGuessableTypes[$type]);
}
if (!$reflectionClass = $this->getReflectionClass($id, $definition)) {

View File

@ -173,7 +173,8 @@ class AutowirePassTest extends \PHPUnit_Framework_TestCase
$container = new ContainerBuilder();
$container->register('a1', __NAMESPACE__.'\Foo');
$container->register('a2', __NAMESPACE__.'\Foo')->addAutowiringType(__NAMESPACE__.'\Foo');
$container->register('a2', __NAMESPACE__.'\Foo');
$container->register('a3', __NAMESPACE__.'\Foo')->addAutowiringType(__NAMESPACE__.'\Foo');
$aDefinition = $container->register('a', __NAMESPACE__.'\NotGuessableArgument');
$aDefinition->setAutowired(true);
@ -181,7 +182,7 @@ class AutowirePassTest extends \PHPUnit_Framework_TestCase
$pass->process($container);
$this->assertCount(1, $container->getDefinition('a')->getArguments());
$this->assertEquals('a2', (string) $container->getDefinition('a')->getArgument(0));
$this->assertEquals('a3', (string) $container->getDefinition('a')->getArgument(0));
}
public function testWithTypeSet()