public function parse($payload)
{
if (function_exists('msgpack_unpack')) {
if ($payload) {
$prevHandler = set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) {
throw new \Exception($errstr);
// @codeCoverageIgnore
});
try {
$msg = msgpack_unpack(trim($payload));
if (!$msg) {
throw new \Exception('Unknown error');
// @codeCoverageIgnore
}
} catch (\Exception $e) {
set_error_handler($prevHandler);
throw new ParserException('Failed To Parse MSGPack - ' . $e->getMessage());
}
set_error_handler($prevHandler);
return $msg;
}
return [];
}
throw new ParserException('Failed To Parse MSGPack - Supporting Library Not Available');
// @codeCoverageIgnore
}