-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSkipErrorHandler.php
More file actions
49 lines (38 loc) · 1.04 KB
/
Copy pathSkipErrorHandler.php
File metadata and controls
49 lines (38 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php declare(strict_types = 1);
/*
* This file is part of the Valksor package.
*
* (c) Davis Zalitis (k0d3r1s)
* (c) SIA Valksor <packages@valksor.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Valksor\Functions\Preg;
use Valksor\Functions\Preg\Exception\PregExecutionException;
use function restore_error_handler;
use function set_error_handler;
final class SkipErrorHandler
{
private function __construct()
{
}
public static function execute(
callable $callback,
): mixed {
$error = null;
set_error_handler(static function (int $errorNumber, string $errorString) use (&$error): bool {
$error = $errorString;
return true;
});
try {
$result = $callback();
} finally {
restore_error_handler();
}
if (null !== $error) {
throw new PregExecutionException($error);
}
return $result;
}
}