X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FWebResponse.php;h=1b6947cd961c4a09177f1fb0e7d62e13515d7956;hb=1996e35ec7d4f1453162d3f1bdf5991448d9e968;hp=ad9f4e664c9d8e7754ea102d530256a5d99f2a3d;hpb=d98fd55e11dc6ab9f04d4810985b04ca39dfc3dd;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/WebResponse.php b/includes/WebResponse.php index ad9f4e664c..1b6947cd96 100644 --- a/includes/WebResponse.php +++ b/includes/WebResponse.php @@ -28,7 +28,7 @@ class WebResponse { /** - * Output a HTTP header, wrapper for PHP's header() + * Output an HTTP header, wrapper for PHP's header() * @param string $string Header to output * @param bool $replace Replace current similar header * @param null|int $http_response_code Forces the HTTP response code to the specified value. @@ -37,10 +37,35 @@ class WebResponse { header( $string, $replace, $http_response_code ); } + /** + * Get a response header + * @param string $key The name of the header to get (case insensitive). + * @return string|null The header value (if set); null otherwise. + * @since 1.25 + */ + public function getHeader( $key ) { + foreach ( headers_list() as $header ) { + list( $name, $val ) = explode( ':', $header, 2 ); + if ( !strcasecmp( $name, $key ) ) { + return trim( $val ); + } + } + return null; + } + + /** + * Output an HTTP status code header + * @since 1.26 + * @param int $code Status code + */ + public function statusHeader( $code ) { + HttpStatus::header( $code ); + } + /** * Set the browser cookie - * @param string $name Name of cookie - * @param string $value Value to give cookie + * @param string $name The name of the cookie. + * @param string $value The value to be stored in the cookie. * @param int|null $expire Unix timestamp (in seconds) when the cookie should expire. * 0 (the default) causes it to expire $wgCookieExpiration seconds from now. * null causes it to be a session cookie. @@ -56,7 +81,7 @@ class WebResponse { * 'prefix', 'domain', and 'secure' * @since 1.22 Replaced $prefix, $domain, and $forceSecure with $options */ - public function setcookie( $name, $value, $expire = 0, $options = null ) { + public function setcookie( $name, $value, $expire = 0, $options = array() ) { global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain; global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly; @@ -89,7 +114,7 @@ class WebResponse { $func = $options['raw'] ? 'setrawcookie' : 'setcookie'; - if ( wfRunHooks( 'WebResponseSetCookie', array( &$name, &$value, &$expire, $options ) ) ) { + if ( Hooks::run( 'WebResponseSetCookie', array( &$name, &$value, &$expire, $options ) ) ) { wfDebugLog( 'cookie', $func . ': "' . implode( '", "', array( @@ -146,11 +171,19 @@ class FauxResponse extends WebResponse { } } + /** + * @since 1.26 + * @param int $code Status code + */ + public function statusHeader( $code ) { + $this->code = intval( $code ); + } + /** * @param string $key The name of the header to get (case insensitive). - * @return string + * @return string|null The header value (if set); null otherwise. */ - public function getheader( $key ) { + public function getHeader( $key ) { $key = strtoupper( $key ); if ( isset( $this->headers[$key] ) ) { @@ -169,20 +202,18 @@ class FauxResponse extends WebResponse { } /** - * @todo document. It just ignore optional parameters. - * - * @param string $name Name of cookie - * @param string $value Value to give cookie - * @param int $expire Number of seconds til cookie expires (Default: 0) - * @param array $options Ignored + * @param string $name The name of the cookie. + * @param string $value The value to be stored in the cookie. + * @param int|null $expire Ignored in this faux subclass. + * @param array $options Ignored in this faux subclass. */ - public function setcookie( $name, $value, $expire = 0, $options = null ) { + public function setcookie( $name, $value, $expire = 0, $options = array() ) { $this->cookies[$name] = $value; } /** * @param string $name - * @return string + * @return string|null */ public function getcookie( $name ) { if ( isset( $this->cookies[$name] ) ) {