gf/RELEASE.2.MD
2019-09-16 11:10:38 +08:00

5.3 KiB
Raw Blame History

v1.9.0

新特性

  1. 增加gf命令行开发辅助工具:https://goframe.org/toolchain/cli
    • 支持GF框架下载更新;
    • 支持初始化新建项目命令;
    • 支持跨平台交叉编译命令;
    • 命令行工具支持自动更新命令;
    • 支持二进制文件打包生成二进制文件或者Go程序文件
    • 支持指定数据库生成数据表模型,支持本地配置文件读取数据库配置;
  2. 新增gi18n国际化管理模块:https://goframe.org/i18n/gi18n/index
  3. 新增gres资源管理器模块:https://goframe.org/os/gres/index
    • 资源管理器支持虚拟的文件/目录操作方法;
    • 默认整合支持到了WebServer、配置管理、模板引擎中
    • 可将任意的文件打包为Go内容,支持开发者自定义加解密;
    • 任意文件如网站静态文件、配置文件等可编译到二进制文件中,也可编译到发布的可执行文件中;
    • 开发者可只需编译发布一个可执行文件,除了方便了软件分发,也为保护软件知识产权内容提供了可能;
  4. 新增gini模块:https://goframe.org/encoding/gini/index
    • 支持ini文件的读取/生成;
    • 同时配置管理模块也增加了对ini文件的支持;
    • 配置管理模块目前自动识别支持ini/xml/json/toml/yaml五种数据格式;
  5. Session功能重构,新增gsession模块,WebServer默认使用文件存储Sessionhttps://goframe.org/net/ghttp/session
  6. WebServer新增中间件特性并保留原有的HOOK设计两者都可实现请求拦截、预处理等等特性https://goframe.org/net/ghttp/router/middleware
  7. WebServer新增更便捷的层级路由注册方式:https://goframe.org/net/ghttp/group/level
  8. gcmd命令行参数解析模块重构,增加Parser解析对象;
  9. 新增gdebug模块,用于堆栈获取/打印;

重大调整

  1. 去掉1.x版本中已经被标记为deprecated的方法;
  2. 调整container分类的容器模块,将默认并发安全参数调整为默认非并发安全;
  3. 目录调整:
    • 去掉third目录,统一使用go module管理包依赖;
    • 将原有g目录中的模块移出到框架主目录,原有的g模块移动到frame/g目录;
    • 将原有geg示例代码目录名称修改为.example

功能改进

  1. ghttp
    • CookieSessionTTL配置数据类型修改为time.Duration;
    • 新增允许同时通过Header/Cookie传递SessionId
    • 新增ConfigFromMap/SetConfigWithMap方法,支持通过map参数设置WebServer
    • 改进默认的CORS配置,增加对常见Header参数的默认支持;
    • 新增IsExitError方法,用于开发者自定义处理recover错误处理时,过滤框架本身自定义的非异常错误;
    • 新增SetSessionStorage配置方法,用于开发者自定义Session存储;
    • ghttp.Request新增更多的参数获取方法;
  2. gdb
    • 增加对SQL中部分字段的自动转义(Quote)功能;
    • 增加对方法操作以及链式操作中的slice参数的支持;
    • 增加SetLogger方法用于开发者自定义数据库的日志打印;
    • 增加Master/Slave方法,开发者可自主选择数据库操作执行的主从节点;
    • 增加对mssql/pgsql/oracle的单元测试;
    • debug模式支持完整带参数整合的SQL语句调试打印
    • 增加了更多的功能方法;
  3. glog
    • 新增Default方法用于获取默认的Logger对象;
    • 新增StackWithFilter方法用于自定义堆栈打印过滤;
    • 增加了更多的功能方法;
  4. gfile
    • 部分方法名称调整:Get/PutBinContents修改为Get/PutBytes
    • 增加ScanDirFile方法,用于仅检索文件目录,支持递归检索;
    • 增加了更多的功能方法;
  5. gview
    • 新增SetI18n方法用于设置视图对象自定义的gi18n国际化对象;
    • 新增对gres资源管理器的内置支持;
  6. gcompress
    • 增加zip算法的文件/目录的压缩/解压方法;
    • 文件/目录压缩参数支持多路径;
  7. gconv
    • 改进对[]byte数据类型参数的支持;
    • 新增Unsafe转换方法,开发者可在特定场景下使用,提高转换效率;
    • 新增MapDeep/StructDeep/StructsDeep方法,支持递归struct转换;
  8. gjson/gparser
    • 改进类型自动识别功能;
    • 新增LoadJson/LoadXml/LoadToml/LoadYaml/LoadIni方法用于自定义的数据类型内容加载;
    • 增加了更多的功能方法;
  9. gerror
    • 改进错误堆栈获取逻辑;
    • 增加了更多的功能方法;
  10. gmap/garray/gset/glist/gvar
    • 改进并发安全基准测试脚本;
    • 修改garray.StringArraygarray.StrArray
    • 增加了更多的功能方法;
  11. gdes
    • 规范化修改方法名称;
  12. gstr
    • 增加Camel/Snake相关命名转换方法;
    • 增加了更多的功能方法;
  13. genv
    • 增加了更多的功能方法;

Bug Fix

  1. 修复gvalid校验struct时的tag自定义错误失效的问题;
  2. 修复gcfg配置管理模块在特定情况下的内容类型自动识别失败问题;
  3. 修复gqueue在用户主动关闭队列时的并发安全问题;
  4. 修复session在开发者设置的TTL过大时的整型变量溢出问题;