diff options
Diffstat (limited to 'vendor/thecodingmachine/safe/lib/Exceptions')
5 files changed, 69 insertions, 0 deletions
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php b/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php new file mode 100644 index 000000000..2814066b0 --- /dev/null +++ b/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php @@ -0,0 +1,15 @@ +<?php + + +namespace Safe\Exceptions; + +class CurlException extends \Exception implements SafeExceptionInterface +{ + /** + * @param resource $ch + */ + public static function createFromCurlResource($ch): self + { + return new self(\curl_error($ch), \curl_errno($ch)); + } +} diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php b/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php new file mode 100644 index 000000000..4300d29e9 --- /dev/null +++ b/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php @@ -0,0 +1,12 @@ +<?php + + +namespace Safe\Exceptions; + +class JsonException extends \Exception implements SafeExceptionInterface +{ + public static function createFromPhpError(): self + { + return new self(\json_last_error_msg(), \json_last_error()); + } +} diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php b/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php new file mode 100644 index 000000000..5f424af2d --- /dev/null +++ b/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php @@ -0,0 +1,12 @@ +<?php + + +namespace Safe\Exceptions; + +class OpensslException extends \Exception implements SafeExceptionInterface +{ + public static function createFromPhpError(): self + { + return new self(\openssl_error_string() ?: '', 0); + } +} diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php b/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php new file mode 100644 index 000000000..ee6367ef6 --- /dev/null +++ b/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php @@ -0,0 +1,21 @@ +<?php + + +namespace Safe\Exceptions; + +class PcreException extends \Exception implements SafeExceptionInterface +{ + public static function createFromPhpError(): self + { + $errorMap = [ + PREG_INTERNAL_ERROR => 'PREG_INTERNAL_ERROR: Internal error', + PREG_BACKTRACK_LIMIT_ERROR => 'PREG_BACKTRACK_LIMIT_ERROR: Backtrack limit reached', + PREG_RECURSION_LIMIT_ERROR => 'PREG_RECURSION_LIMIT_ERROR: Recursion limit reached', + PREG_BAD_UTF8_ERROR => 'PREG_BAD_UTF8_ERROR: Invalid UTF8 character', + PREG_BAD_UTF8_OFFSET_ERROR => 'PREG_BAD_UTF8_OFFSET_ERROR', + PREG_JIT_STACKLIMIT_ERROR => 'PREG_JIT_STACKLIMIT_ERROR', + ]; + $errMsg = $errorMap[preg_last_error()] ?? 'Unknown PCRE error: '.preg_last_error(); + return new self($errMsg, \preg_last_error()); + } +} diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php b/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php new file mode 100644 index 000000000..fbea6ad25 --- /dev/null +++ b/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php @@ -0,0 +1,9 @@ +<?php + + +namespace Safe\Exceptions; + +interface SafeExceptionInterface extends \Throwable +{ + +} |