PcreException.php 850 B

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