public static function read($object, $property, $default = null)
    {
        if (is_null($object)) {
            return self::value($default);
        }

        if (isset($object->$property) || property_exists($object, $property)) {
            return $object->$property;
        }

        return self::value($default);
    }