Bravo3\Orm\Serialisers\JsonSerialiser::deserialiseObject PHP Method

deserialiseObject() private method

Deserialise an object
private deserialiseObject ( string $value, string $class_name ) : object
$value string
$class_name string
return object
    private function deserialiseObject($value, $class_name)
    {
        if ($value === null) {
            return null;
        }
        $ref = new \ReflectionClass($class_name);
        if ($ref->implementsInterface('\\Serializable')) {
            $obj = $ref->newInstanceWithoutConstructor();
            $obj->unserialize($value);
            return $obj;
        } elseif ($ref->implementsInterface('Bravo3\\Orm\\Traits\\SerialisableInterface')) {
            return call_user_func($class_name . '::deserialise', $value);
        } else {
            if (is_object($value)) {
                throw new InvalidArgumentException(get_class($value) . " is not serialisable");
            } else {
                throw new InvalidArgumentException("Value is not serialisable");
            }
        }
    }