3 namespace Services\Http
;
5 use Services\Http\IHttpResponse
;
8 class HttpResponse
implements IHttpResponse
10 private $_statusCode = 200;
11 private $_headers = array();
13 private $_isRedirect = false
;
15 public function setStatusCode($code)
17 if(!is_int($code) ||
(100 > $code) ||
(599 < $code)) {
18 throw new Exception(sprintf('Invalid HTTP response code, %u', $code));
21 $this->_isRedirect
= (300 <= $code) && (307 >= $code);
22 $this->_statusCode
= $code;
27 public function isRedirect()
29 return $this->_isRedirect
;
32 public function setHeader($name, $value)
34 $value = (string) $value;
36 $this->_headers
[$name] = $value;
41 public function getHeaders()
43 return $this->_headers
;
46 private function sendHeaders()
48 $statusCodeSent = false
;
50 if(!count($this->_headers
)) {
54 foreach($this->_headers
as $headerName => $headerValue) {
55 if(!$statusCodeSent) {
57 sprintf('%s:%s', $headerName, $headerValue),
61 $statusCodeSent = true
;
68 public function setBody($content)
70 $this->_body
= $content;
75 public function getBody()
81 private function sendBody()
88 public function sendResponse()