X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FWebResponse.php;h=1101d75d715619df53121a75ab87752a74f11f52;hb=ad39f2da8660219768f46db739be66a27c8eb651;hp=e159152e4084445050e54a5e9b1844d9c5adf32a;hpb=8974bfd94ba07c922ac83540a2e5109d6caa4cd8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/WebResponse.php b/includes/WebResponse.php index e159152e40..1101d75d71 100644 --- a/includes/WebResponse.php +++ b/includes/WebResponse.php @@ -1,18 +1,152 @@ \ No newline at end of file +/** + * @ingroup HTTP + */ +class FauxResponse extends WebResponse { + private $headers; + private $cookies; + private $code; + + /** + * Stores a HTTP header + * @param $string String: header to output + * @param $replace Bool: replace current similar header + * @param $http_response_code null|int Forces the HTTP response code to the specified value. + */ + public function header( $string, $replace = true, $http_response_code = null ) { + if ( substr( $string, 0, 5 ) == 'HTTP/' ) { + $parts = explode( ' ', $string, 3 ); + $this->code = intval( $parts[1] ); + } else { + list( $key, $val ) = array_map( 'trim', explode( ":", $string, 2 ) ); + + if( $replace || !isset( $this->headers[$key] ) ) { + $this->headers[$key] = $val; + } + } + + if ( $http_response_code !== null ) { + $this->code = intval( $http_response_code ); + } + } + + /** + * @param $key string + * @return string + */ + public function getheader( $key ) { + if ( isset( $this->headers[$key] ) ) { + return $this->headers[$key]; + } + return null; + } + + /** + * Get the HTTP response code, null if not set + * + * @return Int or null + */ + public function getStatusCode() { + return $this->code; + } + + /** + * @param $name String: name of cookie + * @param $value String: value to give cookie + * @param $expire Int: number of seconds til cookie expires + */ + public function setcookie( $name, $value, $expire = 0, $prefix = null, $domain = null ) { + $this->cookies[$name] = $value; + } + + /** + * @param $name string + * @return string + */ + public function getcookie( $name ) { + if ( isset( $this->cookies[$name] ) ) { + return $this->cookies[$name]; + } + return null; + } +}