From 15784703536a41a19367287afd02ac49d275db10 Mon Sep 17 00:00:00 2001
From: Thijs Kinkhorst <thijs@kinkhorst.com>
Date: Tue, 30 Aug 2022 15:52:32 +0000
Subject: [PATCH] Implement phpinfo controller as a StreamedResponse

---
 modules/admin/src/Controller/Config.php | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/modules/admin/src/Controller/Config.php b/modules/admin/src/Controller/Config.php
index 2eeaf772b..c9c789e40 100644
--- a/modules/admin/src/Controller/Config.php
+++ b/modules/admin/src/Controller/Config.php
@@ -14,6 +14,7 @@ use SimpleSAML\Utils;
 use SimpleSAML\XHTML\Template;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\StreamedResponse;
 
 /**
  * Controller class for the admin module.
@@ -165,18 +166,15 @@ class Config
      *
      * @param \Symfony\Component\HttpFoundation\Request $request The current request.
      *
-     * @return \Symfony\Component\HttpFoundation\Response The output of phpinfo()
+     * @return \Symfony\Component\HttpFoundation\StreamedResponse The output of phpinfo()
      */
-    public function phpinfo(/** @scrutinizer ignore-unused */ Request $request): Response
+    public function phpinfo(/** @scrutinizer ignore-unused */ Request $request): StreamedResponse
     {
         $this->authUtils->requireAdmin();
 
-        ob_start();
-        phpinfo();
-        $phpinfo = ob_get_contents();
-        ob_end_clean();
-
-        return new Response($phpinfo);
+        return new StreamedResponse(function () {
+            phpinfo();
+        });
     }
 
     /**
-- 
GitLab