public function deserialize($serialized)
{
if ($serialized[0] === '{' || $serialized[0] === '[') {
$data = json_decode($serialized, true);
if ($data === null) {
throw new JsonPhpException('json_encode failed: :message', ['message' => json_last_error_msg()]);
}
if (!is_array($data)) {
throw new JsonPhpException('json serialized data is not a array, maybe it has been corrupted.');
}
if (isset($data['__wrapper__']) && count($data) === 1) {
return $data['__wrapper__'];
} else {
return $data;
}
} else {
$data = unserialize($serialized);
if ($data === false) {
throw new JsonPhpException('unserialize failed: :message', ['message' => error_get_last()['message']]);
} else {
return $data;
}
}
}