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

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

# `v1.6.0` ## 新功能/改进 1. `gcron`定时任务模块增加运行日志记录功能:https://goframe.org/os/gcron/index 1. `gredis`增加全局分组配置功能,并增加更多的配置选项`maxIdle/maxActive/idleTimeout/maxConnLifetime`:https://goframe.org/database/gredis/index 1. `gcfg`模块增加更多的默认配置文件检索路径,并且增加全局分组配置特性,增加`Instance`单例方法:https://goframe.org/os/gcfg/index 1. `gview`模块增加更多的默认配置文件检索路径,并且增加`Instance`单例方法:https://goframe.org/os/gview/index 1. `ghttp`模块新功能及改进: - 新增`CORS`HTTP(S)跨域请求特性: https://goframe.org/net/ghttp/cors - 增加`TLSConfig`配置功能; - 去掉路由注册方法的`error`返回值,当产生注册错误时直接终端打印错误/输出到日志文件; - 增加在`HTTP Code 302`跳转时的`Set-Cookie`支持; - 增加对`SESSION ID`的安全性检查; - 增加对基于`HTTPS`的`WebSocket`支持(`WSS`):https://goframe.org/net/ghttp/websocket/index - `Request`对象增加`Error`方法,用于输出自定义错误信息到`WebServer`错误日志中; - 其他一些改进; 1. `gdb`模块新功能及改进: - 新增`Instance`单例管理方法; - 新增`Structs/Scan`链式操作方法,`gdb.DB/TX`新增`GetStructs/GetScan`方法,用于结果集`struct`/`slice`映射转换:https://goframe.org/database/gdb/chaining - 新增`Safe`链式操作方法(默认非并发安全),用于链式安全控制:https://goframe.org/database/gdb/chaining - `Where`链式操作方法改进: - 方法支持任意的`string/map/slice/struct/*struct`类型; - 逻辑调整,当链式操作中存在多个`Where`方法调用时,自动转换为`And`条件; - 支持`slice`条件参数,常用在`SELECT IN`查询中,例如:`Where("uid IN(?)", g.Slice{1,2,3})`; - 支持在`map`类型条件参数的`key`中传递条件,例如:`Where(g.Map{"uid>?", uid})`; 1. `gconv`及`gvalid`模块改进并去掉对私有`struct`方法属性的转换/校验; 1. `gconv.Map`转换方法新增对`json tag`: `-`, `omitempty`的支持: https://goframe.org/util/gconv/map 1. `gstr`模块新增 `ReplaceI/ReplaceIByArray/ReplaceIByMap`大小写非敏感替换方法; 1. `gutil`模块增加`IsEmpty`方法,用于判断给定变量是否为空(整型0, 布尔false, slice/map长度为0, 其他为nil的情况,判断为空),并增加快捷方法`g.IsEmpty`; 1. `gutil`模块增加`Export`方法,用于导出返回格式化打印的变量内容字符串,并增加快捷方法`g.Export`; 1. `gspath`增加缓存及非缓存检索检索方法`Search`/`SearchWithCache`; 1. `gjson`模块增加默认的`UseNumber`功能支持; 1. `gmap`增加`SetIfNotExistFunc/SetIfNotExistFuncLock`方法; 1. 迁移`greuseport`模块到新的仓库:https://github.com/gogf/greuseport 1. 大量的单元测试完善; ## Bug Fix 1. 修复`gqueue`模块的资源竞争问题; 1. 修复`gconv.GTime`转换失败问题; 1. 修复`gconv.String`在转换`int`参数时字节溢出问题; 1. 修复`ghttp.Request`的`HTTP Basic Auth`校验问题; 1. 修复`gxml`针对于非`UTF-8`编码内容转换的并发安全问题; 1. 修复`gtime`部分`Format`(`G`&`j`)格式失效问题; 1. 修复`gudp.Conn`对象的`RemoteAddr`获取客户端连接地址方法问题; 1. 修复`gmap/gcache`模块的`GetOrSetFuncLock`方法,增加对回调方法返回值的`nil`判断,只有非nil返回值才会被保存; `GF(Go Frame)`是一款模块化、松耦合、生产级Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎等等,支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite等特性。 # 特点 * 模块化、松耦合设计; * 丰富实用的开发模块; * 详尽的开发文档及示例; * 完善的本地中文化支持; * 致力于项目的通用方案; * 更适合企业及团队使用; * 更多请查阅文档及源码; # 安装 ```html go get -u github.com/gogf/gf ``` 或者 `go.mod`: ``` require github.com/gogf/gf latest ``` > 如果您是从旧版本`1.x`升级到`1.5.0`那么请参考:[1.x升级到1.5.0](https://goframe.org/upgradeto150) # 限制 ```shell golang版本 >= 1.9.2 ``` # 架构 <div align=center> <img src="https://goframe.org/images/arch.png"/> </div> # 文档 开发文档:[https://goframe.org](https://goframe.org) 接口文档:[https://godoc.org/github.com/gogf/gf](https://godoc.org/github.com/gogf/gf) # 使用 ```go package main import ( "github.com/gogf/gf/g" "github.com/gogf/gf/g/net/ghttp" ) func main() { s := g.Server() s.BindHandler("/", func(r *ghttp.Request) { r.Response.Write("Hello World") }) s.Run() } ``` [更多..](https://goframe.org/start/index) # 协议 `GF` 使用非常友好的 [MIT](LICENSE) 开源协议进行发布,永久`100%`开源免费。

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

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

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