Browse Source

Merge branch 'issue-13033' into master

Closes #13033
Fixes #13018
Fixes #11612
Mark Story 7 years ago
parent
commit
d1e53d726d
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/Http/ResponseEmitter.php

+ 4 - 0
src/Http/ResponseEmitter.php

@@ -33,6 +33,9 @@ use Zend\Diactoros\Response\EmitterInterface;
  *
  * - It logs headers sent using CakePHP's logging tools.
  * - Cookies are emitted using setcookie() to not conflict with ext/session
+ * - For fastcgi servers with PHP-FPM session_write_close() is called just
+ *   before fastcgi_finish_request() to make sure session data is saved
+ *   correctly (especially on slower session backends).
  */
 class ResponseEmitter implements EmitterInterface
 {
@@ -63,6 +66,7 @@ class ResponseEmitter implements EmitterInterface
         }
 
         if (function_exists('fastcgi_finish_request')) {
+            session_write_close();
             fastcgi_finish_request();
         }
     }