| @@ 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 | } |
|