diff --git a/src/Symfony/Component/HttpFoundation/StreamedResponse.php b/src/Symfony/Component/HttpFoundation/StreamedResponse.php index 6eedf1c49d2e8..4e755a7cdf07f 100644 --- a/src/Symfony/Component/HttpFoundation/StreamedResponse.php +++ b/src/Symfony/Component/HttpFoundation/StreamedResponse.php @@ -56,6 +56,8 @@ public function setChunks(iterable $chunks): static $this->callback = static function () use ($chunks): void { foreach ($chunks as $chunk) { echo $chunk; + @ob_flush(); + flush(); } }; diff --git a/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php index 2a8fe582501a6..fdaee3a35ff6f 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php @@ -30,10 +30,14 @@ public function testConstructorWithChunks() $chunks = ['foo', 'bar', 'baz']; $callback = (new StreamedResponse($chunks))->getCallback(); - ob_start(); + $buffer = ''; + ob_start(function (string $chunk) use (&$buffer) { + $buffer .= $chunk; + }); $callback(); - $this->assertSame('foobarbaz', ob_get_clean()); + ob_get_clean(); + $this->assertSame('foobarbaz', $buffer); } public function testPrepareWith11Protocol()