diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
commit | a415c29efee45520ae252d2aa28f1083a521cd7b (patch) | |
tree | f4ade4b6668ecc0765de7e1424f7c1427ad433ff /wp-includes/Requests/src/Exception/Http.php | |
parent | Initial commit. (diff) | |
download | wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.tar.xz wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.zip |
Adding upstream version 6.4.3+dfsg1.upstream/6.4.3+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-includes/Requests/src/Exception/Http.php')
-rw-r--r-- | wp-includes/Requests/src/Exception/Http.php | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/wp-includes/Requests/src/Exception/Http.php b/wp-includes/Requests/src/Exception/Http.php new file mode 100644 index 0000000..7efbc93 --- /dev/null +++ b/wp-includes/Requests/src/Exception/Http.php @@ -0,0 +1,78 @@ +<?php +/** + * Exception based on HTTP response + * + * @package Requests\Exceptions + */ + +namespace WpOrg\Requests\Exception; + +use WpOrg\Requests\Exception; +use WpOrg\Requests\Exception\Http\StatusUnknown; + +/** + * Exception based on HTTP response + * + * @package Requests\Exceptions + */ +class Http extends Exception { + /** + * HTTP status code + * + * @var integer + */ + protected $code = 0; + + /** + * Reason phrase + * + * @var string + */ + protected $reason = 'Unknown'; + + /** + * Create a new exception + * + * There is no mechanism to pass in the status code, as this is set by the + * subclass used. Reason phrases can vary, however. + * + * @param string|null $reason Reason phrase + * @param mixed $data Associated data + */ + public function __construct($reason = null, $data = null) { + if ($reason !== null) { + $this->reason = $reason; + } + + $message = sprintf('%d %s', $this->code, $this->reason); + parent::__construct($message, 'httpresponse', $data, $this->code); + } + + /** + * Get the status message. + * + * @return string + */ + public function getReason() { + return $this->reason; + } + + /** + * Get the correct exception class for a given error code + * + * @param int|bool $code HTTP status code, or false if unavailable + * @return string Exception class name to use + */ + public static function get_class($code) { + if (!$code) { + return StatusUnknown::class; + } + + $class = sprintf('\WpOrg\Requests\Exception\Http\Status%d', $code); + if (class_exists($class)) { + return $class; + } + + return StatusUnknown::class; + } +} |