Skip to content

Commit df74e32

Browse files
authored
Merge pull request #51 from moufmouf/autowire_alias
Fixing autowiring on service aliases
2 parents 33a8cbb + 0a6d3cc commit df74e32

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

DependencyInjection/GraphqliteCompilerPass.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,11 @@ private function makePublicInjectedServices(ReflectionClass $refClass, Annotatio
304304
});
305305

306306
foreach ($services as $service) {
307-
$container->getDefinition($service)->setPublic(true);
307+
if ($container->hasAlias($service)) {
308+
$container->getAlias($service)->setPublic(true);
309+
} else {
310+
$container->getDefinition($service)->setPublic(true);
311+
}
308312
}
309313

310314
}

Tests/Fixtures/Entities/Contact.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@ public function getName(): string
3737
* @Field()
3838
* @Autowire(for="$testService")
3939
* @Autowire(for="$someService", identifier="someService")
40+
* @Autowire(for="$someAlias", identifier="someAlias")
4041
* @return string
4142
*/
42-
public function injectService(TestGraphqlController $testService = null, stdClass $someService = null): string
43+
public function injectService(TestGraphqlController $testService = null, stdClass $someService = null, stdClass $someAlias = null): string
4344
{
44-
if (!$testService instanceof TestGraphqlController || $someService === null) {
45+
if (!$testService instanceof TestGraphqlController || $someService === null || $someAlias === null) {
4546
return 'KO';
4647
}
4748
return 'OK';

Tests/Fixtures/config/services.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ services:
2020
someService:
2121
class: stdClass
2222

23+
someAlias:
24+
alias: someService
25+
2326
Symfony\Component\HttpFoundation\Session\Storage\Handler\NullSessionHandler:
2427
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\NullSessionHandler
2528
# controllers are imported separately to make sure services can be injected

0 commit comments

Comments
 (0)