|
Entity/DAO/DTO
特性OpenTelemetry
特性TraceID
,按照OpenTelemetry
生成标准OpenAPIv3
协议的接口文档SwaggerUI
页面error
中的错误码可以识别是否DB
执行错误gvar
泛型?gvar
泛型在框架核心组件中的大量使用gvar
泛型的重要价值Handler
特性Handler
处理Writer
默认关闭,可通过相关配置开启李耀聪
✅ /database/gdb
Table
方法,统一使用Model
方法创建Model
对象。Model
中的Struct/Structs
方法,统一使用Scan
方法执行查询结果到Struct
对象/对象数组映射转换:ORM查询-ScanBatchInsert/BatchReplace/BatchSave
方法,统一使用Insert/Replace/Save
方法实现,内部自动实现参数类型识别采用单条写入还是批量写入:ORM链式操作-写入保存DoFilter
接口方法,用于ORM
提交执行SQL&Args
到底层driver
之前的SQL&Args
自定义过滤:ORM接口开发-回调处理DoCommit
接口方法,用于ORM
提交执行SQL&Args
到底层driver
之前的自定义处理:https://ConvertDataForRecord
接口方法,用于自定义的数据转换处理。ORM接口开发-回调处理Raw
方法,用于通过原始SQL
语句构建Model
对象,随后可以使用Model
的链式操作以及各种特性:ORM链式操作-模型创建Handler
特性,用于自定义的Model
对象修改,并返回新的Model
对象,可轻松地复用常见的逻辑:ORM链式操作-Handler特性Union/UnionAll
特性,用于多条SQL/Model
的查询结果合并:ORM查询-Union/UnionAllWith
特性对条件查询以及排序语句的配置支持:模型关联-静态关联-With特性OnDuplicate/OnDuplicateEx
方法,用于指定Save
方法的更新/不更新字段:ORM链式操作-写入保存Wheref/WhereOrf
方法,用于带有格式化字符串语句的条件传递:ORM查询-Where/WhereOr/WhereNotWhereLT/WhereLTE/WhereGT/WhereGTE
以及WhereOrLT/WhereOrLTE/WhereOrGT/WhereOrGTE
方法,用以为ORM添加常见的比较条件:https://WherePrefix/WhereOrPrefix
方法,用以在为条件字段加上表前缀,常用于关联查询中:https://FieldsPrefix/FieldsExPrefix
方法,用于为查询的字段增加自定义的表前缀,常用于关联查询中:https://FieldsCount/FieldsSum/FieldsMin/FieldsMax/FieldsAvg
方法,用于增加常见的统一查询条件:https://LeftJoinOnField/RightJoinOnField/InnerJoinOnField
方法,用于便捷关联带有相同字段名称的表:https://OmitEmptyWhere/OmitEmptyData
方法,用于特定过滤Where
条件和Data
数据中的空值数据:ORM链式操作-字段过滤OmitNil/OmitNilWhere/OmitNilData
方法,用于特定过滤Where
条件和Data
数据中的nil
数据:ORM链式操作-字段过滤TimeZone
配置项,用于数据库查询的自定义时区转换(目前支持mysql/pgsql
):ORM使用配置Cache
缓存特性,支持增加准确的缓存参数控制:https://Close
方法,用于手动关闭数据库连接:https://ORM
在使用没有自定义配置时默认100
连接数的配置限制。CreatedAt/UpdatedAt/DeletedAt
相关参数,意味着开发者可以在ORM
操作中自定义相关时间字段的更新。HandleSqlBeforeCommit
名称修改为了DoCommit
。context.Context
作为第一必须参数。gdb
组件的With
特性多层级查询失效问题。Record/Result
的所有已废弃的方法。黄骞 ✅ /database/gredis
采用适配器模式,以接口化设计重构该组件,以提高扩展性:Redis-接口化设计
goredis
包的适配器实现,增加了对Redis
集群的支持:Redis-配置管理高先
✅/net/ghttp
Request
对象注入到ctx
上下文对象中,并增加RequestFromCtx/g.RequestFromCtx
方法获取ctx
中的Request
对象。Client
功能特性进行抽离,封装为gclient
组件:HTTPClientServer
日志增加对ctx
上下文链路信息打印的支持,并改进日志格式:链路跟踪*gvar.Var
泛型对象。ghttp
中相关的HTTP Client
直接操作方法,必须通过创建Client
对象来实现客户端访问操作。Controller
路由注册方式,并删除相关实现逻辑代码。智刚 ✅ /net/gtrace
go.opentelemetry.io/otel
到最新的正式版。海亮 ✅/os/glog
context.Context
参数。Handler
特性,采用中间件设计、支持多个Handler
处理,为开发者自定义日志处理提供了更灵活强大的支持:日志组件-HandlerWriter
默认关闭、可通过相关配置开启:日志组件-颜色打印Println
方法。✅
/os/gres
Export
方法用于将资源组件中的文件导出到本地磁盘:资源管理-方法介绍高先 ✅ /os/gfile
SizeFormat
方法用于获取指定文件格式化后的大小字符串。wakaka✅ /os/gcache
汤敏正 ✅ /os/gcfg
*gvar.Var
泛型对象。context.Context
上下文参数。GetWithEnv
方法,当配置适配器中无法查找到对应的参数时,将会自动读取环境变量中的相应参数:配置管理-配置读取GetWithCmd
方法,当配置适配器中无法查找到对应的参数时,将会自动读取命令行参数中的相应参数:配置管理-配置读取Must*
方法,用以直接获取参数并在产生错误时直接panic
。toml/yaml/yml/json/ini/xml
文件后缀自动检索配置文件:配置管理郭强 ✅ /os/gcmd
*gvar.Var
泛型对象。TImmy ✅ /os/genv
*gvar.Var
泛型对象。孙智维 ✅ /os/gcron
context.Context
参数。context.Context
参数。TImmy ✅ /os/gtime
Second/Millisecond/Microsecond/Nanosecond
包方法,使用Timestamp/TimestampMilli/TimestampMicro/TimestampNano
方法替代。张育铭 ✅ /os/gtimer
context.Context
参数。context.Context
参数。孙智维 ✅ /os/grpool
context.Context
参数。goroutine
池任务添加方法增加context.Context
参数。✅
/os/gsession
gsession.Storage
接口增加ctx
上下文参数输输入,用于承接上下文信息、实现完整的链路跟踪。并未保证严谨性增加error
返回参数:Session*gvar.Var
泛型对象。✅
/os/gview
context.Context
参数。plus/minus/times/divide
四则运算内置模板方法。黄骞 ✅ /os/gstructs
internal
中的structs
包开放,命名为gstructs
,用于struct
反射操作的高级使用包:对象信息-gstructs张育铭 ✅/errors/gerror
Message
方法,用于获取指定错误码的错误信息。CodeMessage
方法,用于获取指定错误的错误码信息。NewOption
方法,用于自定义配置的错误对象创建,献给框架高级玩家。HasStack
方法,用于判断给定的error接口对象是否实现(包含)了堆栈信息。gcode
组件介绍:错误处理-错误码特性NewCode/NewCodeSkip/WrapCode/WrapCodeSkip
方法,调增text
输入参数为非必须,默认使用对应错误码的Message
信息。张育铭 ✅ /errors/gcode
gcode
错误码组件,提供可定制型和扩展性极强的错误码管理,结合gerror
组件实现强大的错误处理:错误处理-错误码使用TImmy ✅ /container/garray
At
方法,用于直接获取返回索引位置的数据。✅
/debug/gdebug
TestDataContent
方法,用于直接获取测试包下testdata
目录下指定路径文件内容。黄骞 /encoding/gjson
Get*
方法,统一使用Get
方法获取指定pattern
的内容,并统一返回*gvar.Var
泛型对象,开发者根据业务场景自行通过对应方法便捷转换为特定类型变量。Must*
方法。/frame/g
/frame/gmvc
gmvc
耦合模块,未来不再进一步支持。黄骞 ✅ /util/gutil
Dump
方法,不再使用json
包实现类型打印,而是自实现了对任意类型的打印特性,并且支持打印详细的数据类型:工具方法-gutilSliceToMapWithColumnAsKey
方法,用以将Slice
按照一定规则转换为Map
。黄骞 ✅ /utils/gvalid
bail
校验规则,以及Bail
链式操作方法,用以在数据校验不通过时直接退出校验,不再执行后续校验规则。datetime
校验规则,用以校验常用日期时间类型,其中日期之间支持的连接符号只支持-
,格式如:2006-01-02 12:00:00
。context.Context
参数。其他大量的改进细节,这里不再赘述,感兴趣的小伙伴可参阅官网 goframe.org |
gcmd
命令行对象封装重构实现。init
命令,支持SingleRepo/MonoRepo
两种仓库初始化。并且项目初始化不再依赖远端仓库。gen dao
命令,采用全新的V2
工程化设计,自动生成entity/dao/dto
代码文件。update
命令,工具的更新统一走 https://github.com/gogf/gf-cliget
命令。