GoFrame v2.5 版本发布,企业级 Golang 开发框架

2023年 7月 17日 38.6k 0

大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦!👏👏👏👏

本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了 gf gen ctrl 命令,以规范化定义、开发 API 接口,增加控制器、SDK 的代码生成提高开发效率,以解决 Golang 工程开发中接口层面的规范和效率问题,详情请参考:接口规范 - gen ctrl。其他变更内容请参考以下 change logEnjoy!🍺🍺🍺🍺🍺🍺🍺🍺

Github ChangeLog:github.com/gogf/gf/rel…

完整代码变更: v2.4.0...v2.5.0,感谢本次所有的贡献开发者:

功能改进

  • gdb

  • 改进 ORM SQL 日志记录,操作的字段按照数据表字段定义顺序进行操作。
  • 改进 HOOK 方法实现,支持修改 in 参数的 Table 字段后修改执行的表名。
  • 新增 AllAndCount/ScanAndCount 方法,用于实现便捷的分页查询场景。
  • 新增 Model.WhereOrNot/WhereOrPrefixNot 条件方法。
  • gi18n

  • 改进支持中文(Unicode)作为转译的键名。
  • gclient

  • 新增 Discovery 链式操作方法,用于设置本次请求的服务发现组件。
  • ghttp

  • 改进请求 Context 上下文处理,每次 Context 的变更将会影响底层的 http.Request 对象。以支持自定义 HTTP Handler 的数据交互场景。
  • 新增 Endpoints 配置项支持,用于自定义 Server 的服务注册发现地址,而可以使用当前监听的地址。
  • goai

  • 改进参数校验识别,如果参数为必须参数,则在 OpenAPIv3 结果中进行标记。
  • gsel

  • 修复 RoundRobin 实现中 Endpoints 更新的锁机制问题。
  • glog

  • 新增 TimeFormat 配置,用于自定义日志输出的时间格式:日志组件 - 配置管理
  • 改进 Rotation 实现,支持短运行程序的日志文件切分。
  • gtag

  • 新增 GetGlobalEnums 方法,用于获取全局注册的枚举类型。
  • gutil

  • 新增 DumpJson 方法,用于将任意类型变量按照 JSON 格式化打印到终端,便于人工阅读。
  • gvalid

  • 新增 enums 校验规则,用于实现枚举类型的自动识别和校验:数据校验 - 校验规则
  • 社区组件

  • 修复 contrib/registry/polaris 组件在多个服务端时的负载均衡问题。
  • 改进 contrib/drivers/pgsql 在 TableFields 返回的 Index 字段序号统一从 0 开始。
  • 改进 contrib/nosql/redis 新增用户配置项支持。
  • 改进 contrib/rpc/grpcx 组件,grpcx.Server 新增 Endpoints 配置项支持,用于自定义服务注册发现的地址。
  • 新增 contrib/sdk/httpclient 组件,用于本次版本新增的 gf gen ctrl 命令生成的 HTTP SDK 代码文件依赖库。
  • 新增 contrib/trace/otlpgrpc 及 contrib/trace/otlphttp 组件,用以实现基于 OpenTelemetry 的链路跟踪统一对接组件。
  • 开发工具

  • 新增 gf gen ctrl 命令,用于编译 api 定义目录,自动生成规范的 controllerHTTP SDK 代码:接口规范 - gen ctrl

  • 改进 gf gen dao 命令,新增 TypeMapping 特性,开发者可自定义数据表字段类型与生成的 Go 实体数据结构属性类型映射,并且可以方便引入第三方包类型(如 decimal 包以支持高精度类型):数据规范 - gen dao

  • 改进 gf gen enums 命令,其中的 Prefix 参数改为 Prefixes,以支持多个生成枚举类型的包前缀指定:枚举维护 - gen enums

  • 改进 gf gen service 命令:

    • 生成的 service 文件中,增加方法注释生成。
    • 当生成的 service 文件中存在 import 冲突时,自动生成 import alias
  • 改进命令行封装,暴露 gfcmd.Command 类型,便于开发者可以继承扩展自定义命令行功能。

  • 改进 gf docker 命令,将构建文件参数设置为非必须(考虑兼容),未来将会只用于 Docker 构建,不再耦合二进制构建功能。如果有完整构建需求,建议未来结合 gf build 功能共同使用。并更新项目工程模板的 make image 命令,使用 gf build+gf docker 命令实现。

  • 改进 gf init 命令,修复在部分场景下初始化项目覆盖已存在的.git/.gitignore 目录及文件问题或权限报错问题。

  • 改进 gf up 命令,修复在部分场景下的框架版本更新问题,以及在 windows 系统下的下载安装问题。

  • 改进 gf version 命令,修复在部分场景下的框架版本识别问题。

  • 修复 gf gen pbentity 命令,生成的 proto 文件实体数据结构的 float32/float64/[]byte 类型修改为 float/double/bytes 类型。

  • 改进开发工具,部分命令可以不用显示配置 importPrefix 参数,如:gf gen dao/service

  • 相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论