GoFrame v2.6 版本发布,企业级 Golang 开发框架
大家好啊,GoFrame
框架今天发布了v2.6.0
正式版本啦!👏👏👏👏
本次版本主要是大量的代码改进和BugFix
工作。由于本次版本变更内容较多,以下中文介绍一些较为重要的改进点,详细的ChangeLog
请参考(特别是BugFix
):https://github.com/gogf/gf/releases/tag/v2.6.0
完整代码变更: https://github.com/gogf/gf/compare/v2.5.0...v2.6.0
感谢本次所有的贡献开发者:
功能改进
框架最低依赖的Golang
版本从v1.15
升级到v1.18
。
g
- 新增
g.Go方
法,用于便捷创建带有ctx
和recover
参数的异步goroutine
。
- 新增
glog
- 改进
Handler
回调处理函数的HandlerInput
输入参数,增加Values
参数,该参数为日志打印时的参数列表:日志组件-Handler - 新增
HandlerStructure
回调函数,将日志打印内容按照结构化参数打印,打印内容结构同golang
标准库新版本slog
:日志组件-Handler - 改进日志文件
rotate
逻辑,解决在个别场景下文件无法rotate
的问题。
- 改进
gerror
- 增加错误堆栈模式(
brief/detail
):在brief
模式下,错误堆栈仅会打印非框架组件堆栈。在detail
模式下,错误堆栈会打印完整的框架代码调用链路。框架默认使用brief
模式:错误处理-其他特性
- 增加错误堆栈模式(
gcode
- 新增
gcode.CodeInternalPanic
错误码,框架组件捕获的所有panic
错误将会以此错误码返回。
- 新增
gmap
- 新增
Diff
方法,用于对比并返回两个Map
的差异。
- 新增
gaes
- 新增
PKCS7Padding/PKCS7UnPadding
方法。
- 新增
gdb
- 删除
ConvertDataForRecord
转换方法,新增ConvertValueForField
转换方法。 - 修改
CheckLocalTypeForField
方法,返回参数类型string
修改为LocalType
类型。 - 这两个主要是数据库实现会用到,通常在社区组件中使用。如果使用者本地有
gdb.DB
接口的实现需要注意这个改动。 - 新增
Model.Partition
方法,允许数据库操作时用户显式指定分区参数。 - 新增
Model.LeftJoinOnFields/RightJoinOnFields/InnerJoinOnFields
方法,用于更便捷实现Join
关联操作。 - 修复
Model.WherePrefixNotIn
方法实现问题。
- 删除
gredis
- 新增
Cluster
配置项,用于指定是否使用集群模式:Redis-配置管理 - 新增
Protocol
配置项,用于指定RESP
版本:Redis-配置管理
- 新增
gi18n
- 改进转译文件读取逻辑,支持从资源管理器中自动读取文件:I18N国际化-配置管理
gclient
- 新增
NoUrlEncode
特性,设置GET
请求不自动对参数做UrlEncode
编码。
- 新增
ghttp
- 改进退出信号处理,支持
windows
平台下的退出信号捕获后优雅退出。
- 改进退出信号处理,支持
goai
- 支持自动识别
ghttp.UploadFile
类型为OpenAPIv3
的File
类型。 - 去掉
Path
对象上与Method
对象上重复的描述信息。 - 接口示例的字段类型按照参数数据类型自动转换为对应的数据类型。
- 支持自动识别
gcfg
- 新增
AdapterContent
配置接口实现,使用具体的配置内容来实现配置管理对象:配置管理-AdapterContent
- 新增
gctx
- 新增
NeverDone
方法,用于包裹给定的ctx
对象并返回一个永不会过期和Cancel
的ctx
对象。
- 新增
gfile
- 默认创建的文件模式从
0777
改为了0755
。 - 改进
Copy/CopyFile/CopyDir
方法,增加CopyOption
可选参数,用于控制复制逻辑的可选项。
- 默认创建的文件模式从
gmutex
- 使用
Golang
新版本的mutex
改进gmutex.Mutex
对象,直接使用新版本标准库的TryLock/TryRLock
,不再自行实现这些重复的方法。保留LockFunc/TryLockFunc
方法。 - 新增
gmutex.RWMutex
对象,扩展自标准库的sync.RWMutex
对象,扩展新增了LockFunc/TryLockFunc、RLockFunc/TryRLockFunc
方法。
- 使用
gstr
- 新增
List2/ListAndTrim2/List3/ListAndTrim3
方法,实现类似于PHP list
方法特性,将字符串拆分后作为多个结果值返回。 - 新增
CaseConvert
方法,用于按照给定的CaseType
类型参数执行字符串命名格式转换。
- 新增
gconv
- 新增
ConvertWithRefer
方法,用于给定参数作为类型参考,并转换给定参数为指定参数的类型。
- 新增
gutil
- 新增
FillStructWithDefault
方法,用于自动通过读取struct tag
读取默认值并填充给定的struct
对象/指针。
- 新增
gvalid
- 修复
enums
校验规则不支持map
参数类型的问题。
- 修复
社区组件
配置管理
- 新增
contrib/config/consul
组件,用于配置管理组件接口的consul
服务实现:https://github.com/gogf/gf/tree/master/contrib/config/consul
数据库实现
- 改进
contrib/drivers/dm
组件:- 支持
schema
参数配置。 - 支持
time.Time/*time.Time
时间类型参数操作。
- 支持
- 改进
contrib/drivers/sqlite
组件,支持Insert Ignore
及Save
操作。 - 新增
contrib/drivers/sqlitecgo
组件,通过cgo
方式支持i386
系统架构。 - 改进
contrib/nosql/redis
组件:- 增加
TLSConfig
配置,以支持TLS
链接Redis Server
。 - 增加
Protocol
配置项,以支持最新版本的Redis Server
。
- 增加
服务注册发现
- 新增
contrib/registry/nacos
组件,使用nacos
时限微服务的注册发现: - 改进
contrib/registry/file
组件,自动删除过期的注册项,避免客户端发现并连接过期的服务端地址。 - 修复
contrib/registry/polaris
组件部分实现问题。
微服务组件
- 改进
contrib/rpc/grpcx
组件:- 客户端支持直接给定链接地址访问服务端。
- 完善单测,提高代码质量。
开发工具
- 改进
cli
工具安装方式,额外支持go install
安装方式:go install github.com/gogf/gf/cmd/gf/v2@latest
- 改进
gf run
命令,新增WatchPaths/-w
配置,支持指定监听的路径列表,避免默认监听本地项目所有项目文件引发too many opened files
问题:自动编译-run - 改进
gf gen ctrl
命令,新增Merge/-m
选项,用以控制生成的控制器代码文件按照api
层的文件生成,而不是默认按照api
接口拆分为不同的接口实现文件:接口规范-gen ctrl - 改进
gf gen dao
命令,新增RemoveFieldPrefix/-rf
选项,用于自动去掉生成表字段的名称前缀:数据规范-gen dao - 改进
gf gen pbentity
命令,新增RemoveFieldPrefix/-rf
选项,用于自动去掉生成表字段的名称前缀:数据表PB-gen pbentity - 改进
gf gen service
命令,支持自动识别logic
模块对象的方法注释生成到service
接口文件中。 - 改进
gf version/gf -v
命令,更详细的工具版本、运行环境、框架版本信息。 - 改进开发工具的初始化效率,去掉影响初始化效率的
init
包方法逻辑。 - 修复
gf gen dao
命令中指定Link
数据库配置失效的问题。 - 其他一些细节修复。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
酷瓜云课堂(内网版)v1.1.0 发布,局域网课程点播+直播平台
更新内容 增加文章分类功能 增加问题分类功能 增加专栏付费功能 增加审核等批量功能 增加若干业务插件埋点 精简重构大量业务逻辑 已发现的问题修复 移动端下载 下载地址:https://download.koogua.com/release/lan-edu-app-v1.0.4.zip 系统介绍 酷瓜云课堂内网版,采用C扩展框架Phalcon开发,使用本地基础服务,无营销相关功能,主要适用于公司,学校等内部网络环境使用。 系统功能 实现了点播、直播、专栏、问答、积分等。 友情提示: 演示系统配置低,带宽有限,切莫压测 课程数据来源于网络(无实质内容) 管理后台已禁止数据提交,私密配置已过滤 系统演示: 前台演示 后台演示 演示账号:100015@163.com / 123456 (前后台通用) 项目组件 后台框架:phalcon 3.4.5 前端框架:layui 2.8.8 全文检索:xunsearch 1.4.9 即时通讯:workerman 3.5.22 基础依赖:php7.3, mysql5.7, redis5.0 项目文档 运行环境搭建 系统服务配置 客户终端配置
- 下一篇
【店滴云】继无人茶室代码开源后,快速开发后台也开源
【店滴云】继无人茶室代码开源后,快速开发后台也开源 快速开发后台可以做到的能力: 1、一句话后台表单,满足各种输入场景,数据联动,数据渲染 2、后台检索组件一句话配置 3、后台列表渲染,兼容手机与电脑,分别采用不同渲染,支持无限极分类渲染 4、支持多商户,多层级代理 5、支持不同客户端配置,包含小程序,app,公众号等 6、模块化结构,方便快速开发 7、页面路由,按钮,菜单级别的权限控制 8、后台代码可生成,接口标准化
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8