Add Safe PHP functions

This commit is contained in:
Alex Cabal 2019-03-07 12:11:50 -06:00
parent 04a956886a
commit 58cc098058
260 changed files with 49458 additions and 45 deletions

View file

@ -0,0 +1,14 @@
<?php
namespace Safe\Exceptions;
abstract class AbstractSafeException extends \ErrorException implements SafeExceptionInterface
{
public static function createFromPhpError(): self
{
$error = error_get_last();
return new static($error['message'], 0, $error['type']);
}
}

View file

@ -0,0 +1,15 @@
<?php
namespace Safe\Exceptions;
class CurlException extends AbstractSafeException
{
/**
* @param resource $ch
*/
public static function createFromCurlResource($ch): self
{
return new static(\curl_error($ch), \curl_errno($ch));
}
}

View file

@ -0,0 +1,12 @@
<?php
namespace Safe\Exceptions;
class JsonException extends \Exception implements SafeExceptionInterface
{
public static function createFromPhpError(): self
{
return new static(\json_last_error_msg(), \json_last_error());
}
}

View file

@ -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 static($errMsg, \preg_last_error());
}
}

View file

@ -0,0 +1,9 @@
<?php
namespace Safe\Exceptions;
interface SafeExceptionInterface extends \Throwable
{
}