From: Timo Tijhof Date: Sun, 24 May 2015 12:05:13 +0000 (+0200) Subject: HttpStatus: Implement header() method X-Git-Tag: 1.31.0-rc.0~11183 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/pie.php?a=commitdiff_plain;h=7b835dd12649b7c474d4c9f42875a8a2b23eb032;p=lhc%2Fweb%2Fwiklou.git HttpStatus: Implement header() method Standardise this. Currently MediaWiki does this in many different ways. > WebResponse->header( "HTTP/1.0 $code $message" ); > WebResponse->header( "HTTP/1.1 $code $message" ); > WebResponse->header( "HTTP/1.x $code $message" ); > WebResponse->header( "HTTP/1.1 $code " . HttpStatus::getMessage( $code ) ); > WebResponse->header( "HTTP/1.1 $code $message", true, $code ); > header( "Status: $code $message", true, $code ); Change-Id: I1551e89808a1a67310549ec8d9fcb387754c9169 --- diff --git a/includes/libs/HttpStatus.php b/includes/libs/HttpStatus.php index 809bfdf5a8..442298a60b 100644 --- a/includes/libs/HttpStatus.php +++ b/includes/libs/HttpStatus.php @@ -26,11 +26,10 @@ class HttpStatus { /** - * Get the message associated with HTTP response code $code + * Get the message associated with an HTTP response status code * - * @param $code Integer: status code - * @return String or null: message or null if $code is not in the list of - * messages + * @param int $code Status code + * @return string|null Message, or null if $code is not known */ public static function getMessage( $code ) { static $statusMessage = array( @@ -88,4 +87,25 @@ class HttpStatus { return isset( $statusMessage[$code] ) ? $statusMessage[$code] : null; } + /** + * Output an HTTP status code header + * + * @since 1.26 + * @param int $code Status code + */ + public static function header( $code ) { + static $version = null; + $message = self::getMessage( $code ); + if ( $message === null ) { + trigger_error( "Unknown HTTP status code $code", E_USER_WARNING ); + return false; + } + + if ( $version === null ) { + $version = isset( $_SERVER['SERVER_PROTOCOL'] ) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.0' ? '1.0' : '1.1'; + } + + header( "HTTP/$version $code $message" ); + } + }