Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit45f1e38

Browse files
committed
[DependencyInjection] Ignore argument type check in CheckTypeDeclarationsPass if it's a Definition with a factory
1 parent69d4d6d commit45f1e38

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

‎src/Symfony/Component/DependencyInjection/Compiler/CheckTypeDeclarationsPass.php‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ private function checkType(Definition $checkedDefinition, $value, \ReflectionPar
210210
$class =null;
211211

212212
if ($valueinstanceof Definition) {
213+
if ($value->getFactory()) {
214+
return;
215+
}
216+
213217
$class =$value->getClass();
214218

215219
if ($class &&isset(self::BUILTIN_TYPES[strtolower($class)])) {

‎src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckTypeDeclarationsPassTest.php‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,20 @@ public function testCallableClass()
999999

10001000
$this->addToAssertionCount(1);
10011001
}
1002+
1003+
publicfunctiontestIgnoreDefinitionFactoryArgument()
1004+
{
1005+
$container =newContainerBuilder();
1006+
$container->register('bar', Bar::class)
1007+
->setArguments([
1008+
(newDefinition(Foo::class))
1009+
->setFactory([Foo::class,'createStdClass'])
1010+
]);
1011+
1012+
(newCheckTypeDeclarationsPass())->process($container);
1013+
1014+
$this->addToAssertionCount(1);
1015+
}
10021016
}
10031017

10041018
class CallableClass

‎src/Symfony/Component/DependencyInjection/Tests/Fixtures/CheckTypeDeclarationsPass/Foo.php‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,9 @@ public static function createArray(): array
2323
{
2424
return [];
2525
}
26+
27+
publicstaticfunctioncreateStdClass():\stdClass
28+
{
29+
returnnew \stdClass();
30+
}
2631
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp