Merge "Http::getProxy() method to get proxy configuration"
[lhc/web/wiklou.git] / includes / libs / HttpStatus.php
index 809bfdf..72fc333 100644 (file)
 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(
+               static $statusMessage = [
                        100 => 'Continue',
                        101 => 'Switching Protocols',
                        102 => 'Processing',
@@ -84,8 +83,32 @@ class HttpStatus {
                        505 => 'HTTP Version Not Supported',
                        507 => 'Insufficient Storage',
                        511 => 'Network Authentication Required',
-               );
+               ];
                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" );
+       }
+
 }