👋 Hi ,朋友们!GoFrame
框架v2.2.0
版本在今天发布啦!
本次版本的最大的看点在于:
driver
,目前框架通过社区组件的方式提供了9
种数据库类型的driver
实现,满足绝大部分业务项目的需求。尤其是本次版本新增了对国产达梦数据库的支持,未来我们期望社区的开发者能提供更多国产数据库类型的driver
实现,贡献给开源社区。3
种类型的配置中心接口实现,支持Apollo/Polaris/Kubernetes ConfigMap
。GoFrame
框架采用了模块化低耦设计,组件分为框架主库与社区组件。框架主库提供核心通用轻量的基础组件,而社区组件是与框架主库解耦的单独组件包,保证主库通用轻量的同时为框架扩充了更多的能力。44
位,框架的贡献者达到了107
位。感谢大家为社区付出的努力和贡献!💖Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.2.0
59
种常用内置校验规则:数据校验-校验规则contrib/config/kubecm
,实现基于kubernetes configmap
的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/kubecmcontrib/config/apollo
,实现基于apollo
配置中心的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/apollocontrib/config/polaris
,实现基于polaris
配置中心的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/polariscontrib/drivers/dm
国产达梦数据库支持:https://github.com/gogf/gf/tree/master/contrib/driverscontrib/drivers/pgsql
在 ORM 组件层面支持更多pgsql
内置的数据类型。contrib/drivers/pgsql
支持写入操作下的LastInsertId
特性。contrib/drivers/clickhouse
支持decimal.Decimal
数据类型。contrib/drivers/dm
国产达梦数据库支持:https://github.com/gogf/gf/tree/master/contrib/driverscontrib/registry/etcd
实现,将日志对象改为接口属性,允许外部注册自定义的日志对象。contrib/config/kubecm
,实现基于kubernetes configmap
的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/kubecmcontrib/config/apollo
,实现基于apollo
配置中心的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/apollocontrib/config/polaris
,实现基于polaris
配置中心的配置组件Adapter
实现:https://github.com/gogf/gf/tree/master/contrib/config/polarisdriver
实现逻辑,后续新增更多的数据库driver
支持更加简便。ToSQL
方法,用于将 ORM 操作生成可供调试的SQL
语句,并不真正执行SQL
。CatchSQL
方法,用于通过闭包方法获取内部执行的SQL
语句列表。Core
对象中的GetStruct/GetStructs
方法,统一使用Scan
方法操作,以提高易用性。Extra
及Protocol
配置,用于设置额外的配置参数以及链接协议,默认通过Link
配置自动解析。Filtered
接口,采用默认实现,简化复杂度、提高易用性。ConvertValueForLocal
及CheckLocalTypeForField
接口,用于自定义的数据类型转换及数据类型获取,并提供默认实现。ClearTableFields
方法,用于清理特定数据表的数据结构缓存:ORM 高级特性-字段映射ClearTableFieldsAll
方法,用于清理当前数据库对象所有的数据表数据结构缓存:ORM 高级特性-字段映射ClearCache
方法,用于清理特定数据表的所有查询缓存:ORM 链式操作-查询缓存ClearCacheAll
方法,用于清理当前数据库对象所有的查询缓存:ORM 链式操作-查询缓存gcompress
GzipPathWriter
方法没用与将特定路径下的文件压缩到指定的io.Writer
中。zip
算法打包压缩文件 /目录并返回字节内容。gjson
ContentTypeJson
等字符串参数调整为ContentType
类型--gf.gerror.brief
及GF_GERROR_BRIEF
环境变量开关,控制是否在错误堆栈打印时过滤框架堆栈:错误处理-其他特性ghttp
MiddlewareJsonBody
用于校验请求Body
是否JSON
格式。GetListenedAddress
方法,用于获取HTTP Server
在指定:0
监听端口时系统随机分配的监听地址。500
。gtcp
GetListenedAddress/GetListenedPort
方法,用于获取TCP Server
在指定:0
监听端口时系统随机分配的监听地址 /端口。gudp
GetListenedAddress/GetListenedPort
方法,用于获取UDP Server
在指定:0
监听端口时系统随机分配的监听地址 /端口。goai
URL
和Body
中存在相同参数时。gtrace
WithTraceID
方法的错误提示为更明确的信息。WithUUID
方法,用于将标准的UUID
转换为OpenTelemetry
的TraceID
。gcfg
Available
接口方法定义,将resource
参数改为非必须参数。gcron
gctx
GetInitCtx/SetInitCtx
方法,用于main
包及包init
包初始化方法执行时的context
获取和设置。glog
ILogger
接口定义,用于跨组件使用日志组件时的接口化解耦。gres
File
对象新增Export
方法,用于将该对象关联的资源导出到指定的磁盘路径。gstructs
RecursiveOption
从int
类型改进为自定义类型,并调整对应的方法参数定义。gstr.IsGNUVersion
方法,用于判断给定的字符串是否满足GNU
版本规则。gconv
NaN
特殊字符串的int64/uint64
转换支持。gutil
GetOrDefaultStr/GetOrDefaultAny
方法,用于默认值和非必须参数的便捷处理。gvalid
59
种常用内置校验规则:数据校验-校验规则garray/gmap/gset/glist/gtype/gvar
在容器对象为nil
场景下DeepCopy
的panic
问题。gtime
在对象为nil
场景下DeepCopy
的panic
问题。Group
方法在给定多个排序条件时的覆盖问题。HTTP Server
在JSON
格式字符串返回时的内容重复输出问题。gstr.Nl2Br
方法在部分场景下由于逻辑判断引起的数组访问越界问题。Req
对象属性为*gjson.Json
类型的参数接收问题。gen dao
命令,增加clear
参数,用于自动清理目标数据库中不存在的本地数据模型 Go 文件:数据规范-gen daogen service
命令:接口维护-gen serviceclear
参数,用于自动清理在logic
没有对应的接口代码及文件。run
命令,增加自定义的程序运行参数。这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.