GoFrame v1.9.3 发布,Go 应用开发框架

johng · · 1031 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# `v1.9.3` (2019-09-24) 该版本实际为`v2.0`的大版本发布,为避免`go module`机制严格要求`v2`版本以上需要修改`import`并加上`v2`后缀,因此使用了`v1.9`进行发布。 ## 新特性 1. 新增`gf`命令行开发辅助工具:https://goframe.org/toolchain/cli 1. 新增`gres`资源管理器模块:https://goframe.org/os/gres/index 1. 重构`Session`功能,新增`gsession`模块,`WebServer`默认使用文件存储`Session`:https://goframe.org/net/ghttp/session 1. `WebServer`新增中间件特性,并保留原有的HOOK设计,两者都可实现请求拦截、预处理等等特性:https://goframe.org/net/ghttp/router/middleware 1. 新增`gi18n`国际化管理模块:https://goframe.org/i18n/gi18n/index 1. 新增`gini`模块:https://goframe.org/encoding/gini/index 1. `WebServer`新增更便捷的层级路由注册方式:https://goframe.org/net/ghttp/group/level 1. `gcmd`命令行参数解析模块重构,增加`Parser`解析对象:https://goframe.org/os/gcmd/index 1. 新增`gdebug`模块,用于堆栈信息获取/打印:https://goframe.org/debug/gdebug/index ## 重大调整 1. 去掉`1.x`版本中已经被标记为`deprecated`的方法; 1. 调整`container`分类的容器模块,将默认并发安全参数调整为默认非并发安全; 1. 目录调整: - 去掉`third`目录,统一使用`go module`管理包依赖; - 将原有`g`目录中的模块移出到框架主目录,原有的`g`模块移动到`frame/g`目录; - 将原有`geg`示例代码目录名称修改为`.example`; ## 功能改进 1. `ghttp` - 改进`Request`参数解析方式:https://goframe.org/net/ghttp/request - 改进跨域请求功能,新增`Origin`设置及校验功能:https://goframe.org/net/ghttp/cors - `Cookie`及`Session`的`TTL`配置数据类型修改为`time.Duration`; - 新增允许同时通过`Header/Cookie`传递`SessionId`; - 新增`ConfigFromMap/SetConfigWithMap`方法,支持通过`map`参数设置WebServer; - 改进默认的`CORS`配置,增加对常见`Header`参数的默认支持; - 新增`IsExitError`方法,用于开发者自定义处理`recover`错误处理时,过滤框架本身自定义的非异常错误; - 新增`SetSessionStorage`配置方法,用于开发者自定义`Session`存储; - `ghttp.Request`新增更多的参数获取方法; 1. `gdb` - 增加对SQL中部分字段的自动转义(`Quote`)功能; - 增加对方法操作以及链式操作中的`slice`参数的支持; - 增加`SetLogger`方法用于开发者自定义数据库的日志打印; - 增加`Master/Slave`方法,开发者可自主选择数据库操作执行的主从节点; - 增加对`mssql/pgsql/oracle`的单元测试; - 在`debug`模式支持完整带参数整合的SQL语句调试打印; - 增加了更多的功能方法; 1. `glog` - 新增`Default`方法用于获取默认的`Logger`对象; - 新增`StackWithFilter`方法用于自定义堆栈打印过滤; - 增加了更多的功能方法; 1. `gfile` - 部分方法名称调整:`Get/PutBinContents`修改为`Get/PutBytes`; - 增加`ScanDirFile`方法,用于仅检索文件目录,支持递归检索; - 增加了更多的功能方法; 1. `gview` - 新增`SetI18n`方法用于设置视图对象自定义的`gi18n`国际化对象; - 新增对`gres`资源管理器的内置支持; 1. `gcompress` - 增加`zip`算法的文件/目录的压缩/解压方法; - 文件/目录压缩参数支持多路径; 1. `gconv` - 改进对`[]byte`数据类型参数的支持; - 新增`Unsafe`转换方法,开发者可在特定场景下使用,提高转换效率; - 新增`MapDeep/StructDeep/StructsDeep`方法,支持递归`struct`转换; 1. `gjson/gparser` - 改进类型自动识别功能; - 新增`LoadJson/LoadXml/LoadToml/LoadYaml/LoadIni`方法用于自定义的数据类型内容加载; - 增加了更多的功能方法; 1. `gerror` - 改进错误堆栈获取逻辑; - 增加了更多的功能方法; 1. `gmap/garray/gset/glist/gvar` - 改进并发安全基准测试脚本; - 修改`garray.StringArray`为`garray.StrArray`; - 增加了更多的功能方法; 1. `gdes` - 规范化修改方法名称; 1. `gstr` - 增加`Camel/Snake`相关命名转换方法; - 增加了更多的功能方法; 1. `genv` - 增加了更多的功能方法; ## Bug Fix 1. 修复`gvalid`校验`struct`时的`tag`自定义错误失效的问题; 1. 修复`gcfg`配置管理模块在特定情况下的内容类型自动识别失败问题; 1. 修复`gqueue`在用户主动关闭队列时的并发安全问题; 1. 修复`session`在开发者设置的`TTL`过大时的整型变量溢出问题; `GF(Go Frame)`是一款模块化、高性能、生产级的Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、资源管理、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、路由注册、配置管理、模板引擎等等,支持热重启、热更新、热编译、多域名、多端口、多服务、HTTPS、Rewrite等特性。 # 安装 ```html go get -u github.com/gogf/gf ``` 或者 `go.mod`: ``` require github.com/gogf/gf latest ``` # 限制 ```html golang版本 >= 1.10.0 ``` # 架构 <div align=center> <img src="https://gf.cdn.johng.cn/images/arch.png"/> </div> # 特点 * 模块化、松耦合设计; * 模块丰富,开箱即用; * 详尽的开发文档及示例; * 完善的本地中文化支持; * 致力于项目的通用方案; * 更适合企业及团队使用; * 更多请查阅文档及源码; 开源项目地址: - **主库**: https://github.com/gogf/gf - **码云**: https://gitee.com/johng/gf # 帮助 - QQ交流群:[116707870](//shang.qq.com/wpa/qunwpa?idkey=195f91eceeb5d7fa76009b7cd5a4641f70bf4897b7f5a520635eb26ff17adfe7) - WX交流群:微信添加`389961817`备注`GF`加群 - 主库ISSUE:https://github.com/gogf/gf/issues - 国内ISSUE:https://gitee.com/johng/gf/issues # 协议 `GF` 使用非常友好的 `MIT` 开源协议进行发布,永久`100%`开源免费。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1031 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传