[DependencyInjection] Fix using autowiring types when there are more than 2 services
This commit is contained in:
parent
33bae93a44
commit
5981278537
@ -169,6 +169,7 @@ class AutowirePass implements CompilerPassInterface
|
|||||||
foreach ($definition->getAutowiringTypes() as $type) {
|
foreach ($definition->getAutowiringTypes() as $type) {
|
||||||
$this->definedTypes[$type] = true;
|
$this->definedTypes[$type] = true;
|
||||||
$this->types[$type] = $id;
|
$this->types[$type] = $id;
|
||||||
|
unset($this->notGuessableTypes[$type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$reflectionClass = $this->getReflectionClass($id, $definition)) {
|
if (!$reflectionClass = $this->getReflectionClass($id, $definition)) {
|
||||||
|
@ -173,7 +173,8 @@ class AutowirePassTest extends \PHPUnit_Framework_TestCase
|
|||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
|
|
||||||
$container->register('a1', __NAMESPACE__.'\Foo');
|
$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 = $container->register('a', __NAMESPACE__.'\NotGuessableArgument');
|
||||||
$aDefinition->setAutowired(true);
|
$aDefinition->setAutowired(true);
|
||||||
|
|
||||||
@ -181,7 +182,7 @@ class AutowirePassTest extends \PHPUnit_Framework_TestCase
|
|||||||
$pass->process($container);
|
$pass->process($container);
|
||||||
|
|
||||||
$this->assertCount(1, $container->getDefinition('a')->getArguments());
|
$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()
|
public function testWithTypeSet()
|
||||||
|
Reference in New Issue
Block a user