home *** CD-ROM | disk | FTP | other *** search
/ HTML Examples / WP.iso / wordpress2 / wp-includes / Requests / Exception / HTTP.php next >
Encoding:
PHP Script  |  2016-05-12  |  1.4 KB  |  71 lines

  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. }