diff --git a/src/Pecee/Http/Response.php b/src/Pecee/Http/Response.php index 5512b0c..6749044 100644 --- a/src/Pecee/Http/Response.php +++ b/src/Pecee/Http/Response.php @@ -21,7 +21,7 @@ class Response { * @param string $url */ public function redirect($url) { - header('location: ' . $url); + $this->header('Location: ' . $url); die(); } @@ -29,9 +29,59 @@ class Response { $this->redirect(url()); } + /** + * Add http authorisation + * @param string $name + * @return self $this + */ public function auth($name = '') { - header('WWW-Authenticate: Basic realm="' . $name . '"'); - header('HTTP/1.0 401 Unauthorized'); + $this->headers([ + 'WWW-Authenticate: Basic realm="' . $name . '"', + 'HTTP/1.0 401 Unauthorized' + ]); + return $this; + } + + public function cache($duration = 2592000) { + $this->headers([ + 'Cache-Control: public,max-age='.$duration.',must-revalidate', + 'Expires: '.gmdate('D, d M Y H:i:s',(time()+$duration)).' GMT', + 'Last-modified: '.gmdate('D, d M Y H:i:s',time()).' GMT' + ]); + return $this; + } + + /** + * Json encode array + * @param array $value + * @return self $this + */ + public function json(array $value) { + $this->header('Content-type: application/json'); + echo json_encode($value); + return $this; + } + + /** + * Add header to response + * @param string $value + * @return self $this + */ + public function header($value) { + header($value); + return $this; + } + + /** + * Add multiple headers to response + * @param array $headers + * @return self $this + */ + public function headers(array $headers) { + foreach($headers as $header) { + header($header); + } + return $this; } } \ No newline at end of file