wp/wp-includes/Requests/Exception/HTTP.php
changeset 7 cf61fcea0001
child 18 be944660c56a
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
       
     1 <?php
       
     2 /**
       
     3  * Exception based on HTTP response
       
     4  *
       
     5  * @package Requests
       
     6  */
       
     7 
       
     8 /**
       
     9  * Exception based on HTTP response
       
    10  *
       
    11  * @package Requests
       
    12  */
       
    13 class Requests_Exception_HTTP extends Requests_Exception {
       
    14 	/**
       
    15 	 * HTTP status code
       
    16 	 *
       
    17 	 * @var integer
       
    18 	 */
       
    19 	protected $code = 0;
       
    20 
       
    21 	/**
       
    22 	 * Reason phrase
       
    23 	 *
       
    24 	 * @var string
       
    25 	 */
       
    26 	protected $reason = 'Unknown';
       
    27 
       
    28 	/**
       
    29 	 * Create a new exception
       
    30 	 *
       
    31 	 * There is no mechanism to pass in the status code, as this is set by the
       
    32 	 * subclass used. Reason phrases can vary, however.
       
    33 	 *
       
    34 	 * @param string|null $reason Reason phrase
       
    35 	 * @param mixed $data Associated data
       
    36 	 */
       
    37 	public function __construct($reason = null, $data = null) {
       
    38 		if ($reason !== null) {
       
    39 			$this->reason = $reason;
       
    40 		}
       
    41 
       
    42 		$message = sprintf('%d %s', $this->code, $this->reason);
       
    43 		parent::__construct($message, 'httpresponse', $data, $this->code);
       
    44 	}
       
    45 
       
    46 	/**
       
    47 	 * Get the status message
       
    48 	 */
       
    49 	public function getReason() {
       
    50 		return $this->reason;
       
    51 	}
       
    52 
       
    53 	/**
       
    54 	 * Get the correct exception class for a given error code
       
    55 	 *
       
    56 	 * @param int|bool $code HTTP status code, or false if unavailable
       
    57 	 * @return string Exception class name to use
       
    58 	 */
       
    59 	public static function get_class($code) {
       
    60 		if (!$code) {
       
    61 			return 'Requests_Exception_HTTP_Unknown';
       
    62 		}
       
    63 
       
    64 		$class = sprintf('Requests_Exception_HTTP_%d', $code);
       
    65 		if (class_exists($class)) {
       
    66 			return $class;
       
    67 		}
       
    68 
       
    69 		return 'Requests_Exception_HTTP_Unknown';
       
    70 	}
       
    71 }