From aa3d20264628ec6d51bd865b52bdf56678e7611b Mon Sep 17 00:00:00 2001
From: Thomas Flori <thflori@gmail.com>
Date: Mon, 6 Aug 2018 06:20:44 +0200
Subject: [PATCH] set http line after headers

---
 src/ServerResponse.php | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/ServerResponse.php b/src/ServerResponse.php
index 7df088c..f7792aa 100644
--- a/src/ServerResponse.php
+++ b/src/ServerResponse.php
@@ -20,16 +20,8 @@ class ServerResponse extends Response implements ServerResponseInterface
      *
      * @return static
      */
-    public function send()
+    public function send(int $bufferSize = 8192)
     {
-        $http_line = sprintf(
-            'HTTP/%s %s %s',
-            $this->getProtocolVersion(),
-            $this->getStatusCode(),
-            $this->getReasonPhrase()
-        );
-        header($http_line, true, $this->getStatusCode());
-
         foreach ($this->getHeaders() as $name => $values) {
             if (strtolower($name) !== 'set-cookie') {
                 header(sprintf('%s: %s', $name, implode(',', $values)), false);
@@ -40,12 +32,20 @@ class ServerResponse extends Response implements ServerResponseInterface
             }
         }
 
+        $http_line = sprintf(
+            'HTTP/%s %s %s',
+            $this->getProtocolVersion(),
+            $this->getStatusCode(),
+            $this->getReasonPhrase()
+        );
+        header($http_line, true, $this->getStatusCode());
+
         $stream = $this->getBody();
         if ($stream->isSeekable()) {
             $stream->rewind();
         }
         while (!$stream->eof()) {
-            echo $stream->read(1024 * 8);
+            echo $stream->read($bufferSize);
         }
         return $this;
     }
-- 
GitLab