@@ 33-51 (lines=19) @@ | ||
30 | throw new ParserException('Failed To Parse BSON - Supporting Library Not Available'); // @codeCoverageIgnore |
|
31 | } |
|
32 | ||
33 | if ($payload) { |
|
34 | $prevHandler = set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) { |
|
35 | throw new \Exception($errstr); // @codeCoverageIgnore |
|
36 | }); |
|
37 | ||
38 | try { |
|
39 | $bson = bson_decode(trim($payload, " \t\n\r\x0b")); // Don't trim \0, as it has valid meaning in BSON |
|
40 | if ( ! $bson) { |
|
41 | throw new \Exception('Unknown error'); // @codeCoverageIgnore |
|
42 | } |
|
43 | } catch (\Exception $e) { |
|
44 | set_error_handler($prevHandler); |
|
45 | throw new ParserException('Failed To Parse BSON - ' . $e->getMessage()); |
|
46 | } |
|
47 | ||
48 | set_error_handler($prevHandler); |
|
49 | ||
50 | return $bson; |
|
51 | } |
|
52 | ||
53 | return []; |
|
54 | } |
@@ 27-48 (lines=22) @@ | ||
24 | */ |
|
25 | public function parse($payload) |
|
26 | { |
|
27 | if (function_exists('msgpack_unpack')) { |
|
28 | if ($payload) { |
|
29 | $prevHandler = set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) { |
|
30 | throw new \Exception($errstr); // @codeCoverageIgnore |
|
31 | }); |
|
32 | ||
33 | try { |
|
34 | $msg = msgpack_unpack(trim($payload)); |
|
35 | if ( ! $msg) { |
|
36 | throw new \Exception('Unknown error'); // @codeCoverageIgnore |
|
37 | } |
|
38 | } catch (\Exception $e) { |
|
39 | set_error_handler($prevHandler); |
|
40 | throw new ParserException('Failed To Parse MSGPack - ' . $e->getMessage()); |
|
41 | } |
|
42 | ||
43 | set_error_handler($prevHandler); |
|
44 | ||
45 | return $msg; |
|
46 | } |
|
47 | return []; |
|
48 | } |
|
49 | ||
50 | throw new ParserException('Failed To Parse MSGPack - Supporting Library Not Available'); // @codeCoverageIgnore |
|
51 | } |