Skip to content

Commit 00cea61

Browse files
[DependencyInjection] Fix lazyness of AutowiringFailedException
1 parent cf09781 commit 00cea61

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Symfony/Component/DependencyInjection/Exception/AutowiringFailedException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function __construct(string $serviceId, string|\Closure $message = '', in
3939
parent::__construct('', $code, $previous);
4040

4141
$this->message = new class($this->message, $this->messageCallback) {
42-
private string $message;
42+
private string|self $message;
4343
private ?\Closure $messageCallback;
4444

4545
public function __construct(&$message, &$messageCallback)

src/Symfony/Component/DependencyInjection/Tests/Exception/AutowiringFailedExceptionTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,25 @@ public function testGetMessageCallbackWhenMessageIsNotANotClosure()
2525

2626
self::assertNull($exception->getMessageCallback());
2727
}
28+
29+
public function testLazyness()
30+
{
31+
$counter = 0;
32+
$exception = new AutowiringFailedException(
33+
'App\DummyService',
34+
function () use (&$counter) {
35+
++$counter;
36+
37+
throw new \Exception('boo');
38+
}
39+
);
40+
41+
$this->assertSame(0, $counter);
42+
43+
$this->assertSame('boo', $exception->getMessage());
44+
$this->assertSame(1, $counter);
45+
46+
$this->assertSame('boo', $exception->getMessage());
47+
$this->assertSame(1, $counter);
48+
}
2849
}

0 commit comments

Comments
 (0)