v1.10.0 (2019-12-05)

    另外,GoFrame也参加了2019最受欢迎中国开源软件评选投票,明天就结束了,欢迎为GF投票啊:https://www.oschina.net/project/top_cn_2019 网页可以投一票,微信也可以投一票。

    1. WebServer新特性:
    2. Session增加内置的多种Storage实现:
    3. 增加日志组件单例对象,并优化配置管理:
    4. 常用的container容器增加JSON数据格式的Marshal/UnMarshal接口实现:
    5. 新增guuid模块,用于通用的UUID生成:
    1. ghttp
      • 改进请求流程处理性能;
      • Server增加对Logger日志对象的配置;
      • Server开放了GetRouterMap方法,用于获得当前服务的路由列表信息,使得开发者可以更方便地实现自定义权限管理;
      • Server配置管理优化;
      • Client客户端对象进行了大量的改进工作;
      • Client客户端对象增加多文件上传功能;
      • Request对象增加GetError方法,用于获取当前处理错误;
      • Request对象增加独立的视图对象及视图变量绑定功能,使得每个请求可以独立视图管理,也可以通过中间件切换请求对象的视图对象。默认情况下该功能关闭,视图解析时使用的是Server对象的视图对象;
      • 改建Response对象的CORS功能;
      • 增加Response.WriteTplDefault方法,用于解析并返回默认的模板内容;
      • 增加更多的单元测试用例;
      • 其他改进;
    2. gipv4/gipv6
    3. gtcp/gudp
      • 一些改进工作;

    database

    1. gdb
      • 大量细节改进工作;
      • 去掉查询数据为空时的sql.ErrNoRows错误返回,保留Struct/Structs/Scan方法在操作数据为空的该错误返回;
      • 调试模式开启时,输出的SQL语句改进为完整的带参数的SQL,仅作参考;
      • Where方法增加对数据类型支持,包括顺序性的ListMap/TreeMap等等;
      • 查询缓存方法Cache的缓存时间参数类型修改为time.Duration
      • 修改Record/Result的数据类型转换方法名称,原有的转换方法标记为deprecated
      • Record/Result查询结果类型增加IsEmpty方法,用于判断结果集是否为空;
      • Record类型增加GMap方法,用于将查询记录转换为gmap类型;
      • 增加Option/OptionOmitEmpty方法,用于输入参数过滤,包括Data参数及Where参数:
      • 增加字段排除方法FieldsExhttps://goframe.org/database/gdb/senior
      • 增加日志功能特性:
      • 改进数据库配置管理:https://goframe.org/database/gdb/config
      • 增加大量单元测试;
    2. gredis
      • 返回数据类型转换改进:
      • 完善单元测试;
      • 其他改进;

    os

    1. gcache
      • 需要注意了:缓存的有效时间参数从interface{}类型调整为了time.Duration类型,因此不再兼容之前的int参数类型,以保证更好的性能;
    2. gfcache
      • 由于gcache组件的缓存时间参数类型的变更,因此该组件的时间参数也变更为了time.Duration类型;
    3. gcfg
      • 增加Available方法,用以判断配置是否有效;
    4. gfile
      • 增加Chdir方法,用于工作目录切换;
    5. gtime
      • 增加JSON数据格式的Marshal/UnMarshal接口实现;
    1. gmap
      • 增加MapStrAny方法,用于常见map类型的转换;
      • 增加MapCopy方法,用于底层map数据复制;
      • 增加FilterEmpty方法,用于map空值过滤;
      • 增加Pop/Pops方法,用于随机返回map中的数据项(并删除);
      • 增加Replace方法,用于给定的map数据覆盖底层map数据项;
      • 完善单元测试;
      • 其他改进;
    2. garray
      • 增加Interfaces转换方法,返回[]interface{}类型;
      • 对排序数组增加SetComparator方法用户自定义修改比较器;
      • 完善单元测试;
      • 其他改进;
      • 增加NewFrom方法,基于给定的[]interface{}变量创建链表;
      • 增加Join方法,用于将链表项使用给定字符串连接为字符串返回;
      • 完善单元测试;
      • 其他改进;
    3. gset
      • 完善单元测试;
      • 其他改进;
    4. gtree
      • 增加Replace方法,用于更新现有树的数据项;
      • 其他改进;
    5. gtype
      • 一些细节改进工作,不一一列出;
      • 完善基准测试、单元测试;
    6. gvar
      • 增加Ints/Uints类型转换方法;
      • 其他改进;

    crypto

    1. gmd5
      • 小细节改进;
    2. gsha1
      • 小细节改进;

    text

    1. gstr
      • 改进SplitAndTrim方法,将SplitAndTrimSpace标记为deprecated
      • 增加TrimStr方法;
      • 完善单元测试;
      • 其他改进;
    1. gdebug
      • 增加CallerFileLineShort/FuncPath/FuncName方法;
      • 其他改进;

    encoding

    1. gbase64
      • 增加EncodeToString/EncodeFile/EncodeFileToString/DecodeToString方法;
      • 完善单元测试;
    2. gjson
      • 完善单元测试;

    frame

    1. g/gins
      • 增加CreateVar方法;
      • 完善单元测试;
      • 其他改进;
    1. gconv
      • 改进优化部分类型转换方法性能;
      • 增加Uints/SliceUint类型转换方法;
      • 增加UnsafeStrToBytes/UnsafeBytesToStr高性能的类型转换方法;
      • 增加对MapStrAny接口方法的支持,用于常见map类型的转换;
      • 其他改进;
    2. gvalid
      • 改进对中国身份证号的识别校验功能;
      • 增加luhn银行卡号的校验功能;
    3. grand
      • 一些性能改进工作;
    1. 解决WebSocket关闭时的hijacked报错问题:https://github.com/gogf/gf/issues/381
    2. 解决静态文件服务时大文件的内存占用问题;
    3. 修复前置Nginx后默认情况下的Cookie域名设置问题;
    4. 修复gconv.Struct在属性为并且输入属性参数为空时的转换失败问题:
    5. 其他一些修复;