Skip to content

Commit 1aa917e

Browse files
committed
Merge branch 'feature/php-di-7-service-locator' into mod7-merged
2 parents d4a5b9e + e8efad6 commit 1aa917e

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

src/Definition/Reference.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class Reference implements Definition, SelfResolvingDefinition
2222

2323
private bool $isServiceLocatorEntry;
2424

25+
private ?ServiceLocatorDefinition $serviceLocatorDefinition = null;
26+
2527
public function __construct(
2628
/**
2729
* @var string Name of the target entry
@@ -30,8 +32,7 @@ public function __construct(
3032
/**
3133
* @var string|null name of an entry - holder of a definition requesting this entry
3234
*/
33-
private ?string $requestingName = null,
34-
private ?ServiceLocatorDefinition $serviceLocatorDefinition = null
35+
private ?string $requestingName = null
3536
) {
3637
$this->isServiceLocatorEntry = $targetEntryName === self::$serviceLocatorClass;
3738
}

src/Definition/Source/AttributeBasedAutowiring.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,9 @@ private function getMethodInjection(ReflectionMethod $method) : ?MethodInjection
227227
$entryName = $this->getMethodParameter($index, $parameter, $attributeParameters);
228228

229229
if ($entryName !== null) {
230-
$parameters[$index] = new Reference($entryName);
230+
$parameters[$index] = $method->isConstructor() ?
231+
new Reference($entryName, $method->getDeclaringClass()->getName()) :
232+
new Reference($entryName);
231233
}
232234
}
233235

tests/UnitTest/Definition/Source/AttributeBasedAutowiringTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ public function testConstructor()
9292

9393
$parameters = $constructorInjection->getParameters();
9494
$this->assertCount(2, $parameters);
95-
$this->assertEquals(new Reference('foo'), $parameters[0]);
96-
$this->assertEquals(new Reference('bar'), $parameters[1]);
95+
$this->assertEquals(new Reference('foo', AttributeFixture::class), $parameters[0]);
96+
$this->assertEquals(new Reference('bar', AttributeFixture::class), $parameters[1]);
9797
}
9898

9999
public function testMethod1()
@@ -253,7 +253,7 @@ public function testPromotedProperties(): void
253253

254254
$parameters = $constructorInjection->getParameters();
255255
$this->assertCount(1, $parameters);
256-
$this->assertEquals(new Reference('foo'), $parameters[0]);
256+
$this->assertEquals(new Reference('foo', AttributeFixturePromotedProperty::class), $parameters[0]);
257257
}
258258

259259
private function getMethodInjection(ObjectDefinition $definition, $name) : ?MethodInjection

0 commit comments

Comments
 (0)