Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
13 / 13 |
Json | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
7 | |
100.00% |
13 / 13 |
serialize($instance) | |
100.00% |
1 / 1 |
3 | |
100.00% |
3 / 3 |
|||
unserialize($string) | |
100.00% |
1 / 1 |
4 | |
100.00% |
10 / 10 |
<?php | |
/** | |
* | |
*/ | |
namespace aae\serialize { | |
/** | |
* @author Axel Ancona Esselmann | |
* @package aae\serialize | |
*/ | |
class Json implements \aae\serialize\SerializerInterface { | |
public function serialize($instance) { | |
if (is_object($instance) && !$instance instanceof \JsonSerializable) { | |
throw new \Exception("The object passed to ".__METHOD__." does not implement the JsonSerializable interface.", 216141337); | |
} | |
return json_encode($instance); | |
} | |
public function unserialize($string) { | |
if (!is_string($string)) { | |
throw new \Exception(sprintf("Arguments passed to unserialize have to bee strings. %s passed instead.", gettype($string)), 223141616); | |
} | |
$json = json_decode($string, true); | |
if (!$json) { | |
$string = preg_replace('/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/', '', $string); | |
$json = json_decode($string, true); | |
} | |
if (!$json) { | |
throw new \Exception("Invalid JSON was found in '$string'.", 216141338); | |
} | |
return $json; | |
} | |
} | |
} |