| 1 |
<?php |
| 2 |
|
| 3 |
|
| 4 |
namespace Safe\Exceptions; |
| 5 |
|
| 6 |
class PcreException extends \Exception implements SafeExceptionInterface |
| 7 |
{ |
| 8 |
public static function createFromPhpError(): self |
| 9 |
{ |
| 10 |
$errorMap = [ |
| 11 |
PREG_INTERNAL_ERROR => 'PREG_INTERNAL_ERROR: Internal error', |
| 12 |
PREG_BACKTRACK_LIMIT_ERROR => 'PREG_BACKTRACK_LIMIT_ERROR: Backtrack limit reached', |
| 13 |
PREG_RECURSION_LIMIT_ERROR => 'PREG_RECURSION_LIMIT_ERROR: Recursion limit reached', |
| 14 |
PREG_BAD_UTF8_ERROR => 'PREG_BAD_UTF8_ERROR: Invalid UTF8 character', |
| 15 |
PREG_BAD_UTF8_OFFSET_ERROR => 'PREG_BAD_UTF8_OFFSET_ERROR', |
| 16 |
PREG_JIT_STACKLIMIT_ERROR => 'PREG_JIT_STACKLIMIT_ERROR', |
| 17 |
]; |
| 18 |
$errMsg = $errorMap[preg_last_error()] ?? 'Unknown PCRE error: '.preg_last_error(); |
| 19 |
return new self($errMsg, \preg_last_error()); |
| 20 |
} |
| 21 |
} |
| 22 |
|