From a03d724bbcf02db859c3a3297696fd0766e52a28 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 27 Dec 2015 21:18:04 +0100 Subject: [PATCH] Fixes #4 --- Message/Http/Response.php | 25 +++++++++++++++++++++++++ Message/ResponseAbstract.php | 1 + 2 files changed, 26 insertions(+) diff --git a/Message/Http/Response.php b/Message/Http/Response.php index 6c89c857d..85b64f378 100644 --- a/Message/Http/Response.php +++ b/Message/Http/Response.php @@ -101,6 +101,31 @@ class Response extends ResponseAbstract implements RenderableInterface return false; } + /** + * Generate header automatically based on code. + * + * @param \int $code HTTP status code + * + * @return \bool + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function generateHeader(\int $code) + { + if ($code === 403) { + $this->setHeader('HTTP', 'HTTP/1.0 403 Forbidden'); + $this->setHeader('Status', 'Status: HTTP/1.0 403 Forbidden'); + } elseif ($code === 406) { + $this->setHeader('HTTP', 'HTTP/1.0 406 Not acceptable'); + $this->setHeader('Status', 'Status:406 Not acceptable'); + } elseif ($code === 503) { + $this->setHeader('HTTP', 'HTTP/1.0 503 Service Temporarily Unavailable'); + $this->setHeader('Status', 'Status: 503 Service Temporarily Unavailable'); + $this->setHeader('Retry-After', 'Retry-After: 300'); + } + } + /** * Set response. * diff --git a/Message/ResponseAbstract.php b/Message/ResponseAbstract.php index 475975a0a..bdae53801 100644 --- a/Message/ResponseAbstract.php +++ b/Message/ResponseAbstract.php @@ -125,6 +125,7 @@ abstract class ResponseAbstract implements ResponseInterface, ArrayableInterface public function setStatusCode(\string $status) { $this->status = $status; + $this->generateHeader($status); } /**