写在前面
GoFrame
框架发布了 v2
版本,这是一个里程碑版本,包含了很多新功能特性和大量改进,并且发布了一些开创性的特性。
如果是新用户,请直接使用 v2
起飞。如果是老用户,墙裂推荐从 v1
升级为 v2
,更加稳定可靠。
v2
升级的几点重要说明:
- 为保证兼容性,按照
Golang
官方module
管理的规范,我们将import
路径变化了,因此需要全局替换import
路径。 - 由于是大版本升级,因此存在部分方法删减、更新的情况,大家放心一切都有更好的方案提供啦。
- 一般来说升级后重新编译,根据编译错误提示修改代码即可完成升级。
gredis
组件由于支持集群化,因此配置发生了变化,这块需要注意。
我们没有提供升级工具,因为我们觉得提供升级指导即可。
v1与v2的兼容性
为了保证项目兼容性,能够同时依赖 v1
和 v2
版本,因此我们发布了 v1
最后一个版本 v1.16.7
,大家有需要可以升级。并且解决了 client_tracing.go:73:3: undefined: attribute.Any
的常见问题。但同时依赖两个版本的 GoFrame
可能会降低项目维护性,因此建议大家尽快升级到 v2
版本。
将依赖替换为v2
全局替换源代码即可,规则如下:
"github.com/gogf/gf/ => "github.com/gogf/gf/v2/
像这样:
下载最新v2版本
go get -u github.com/gogf/gf/v2@latest
工程目录的调整
如果您使用的是 GoFrame
官方推荐的工程目录结构,可以参考最新的工程目录结构手动调整即可: 工程目录设计🔥
需要注意的是,最新的 cli
工具不再支持旧版工程目录的项目创建。
编译运行修改
运行您的项目,如果遇到编译问题,根据错误提示进行手动修改,如此循环。
如果您不知道如何修改,请在本文档评论,我们的社区团队小伙伴将会及时给与升级帮助。
CLI的重要变化
- 去掉了
swagger
命令。v1
版本的gf swagger
命令时通过自动安装第三方的swag
工具,解析源代码中的注释生成的swagger
文档。这种文档的管理维护方式会有一些问题:仅支持Swagger2.0
协议、使用体验很差、注释难以和代码同步维护,造成接口文档与代码不一致的问题。新版本有了规范路由,该命令即废弃掉了。如果需要继续使用该命令的功能,可以手动安装使用第三方swag
工具: https://github.com/swaggo/swag - 去掉了
update
命令。v2
版本开始,CLI
工具的安装下载统一走github
,以减少CLI
工具的维护工作量。后续可能会重新增加该命令。
一些重要说明
gf-cli
的仓库已经搬迁到了gf
主库维护,便于保证工具与框架版本同步。原有仓库不再维护。具体请查看说明: https://github.com/gogf/gf/tree/master/cmd/gf- 框架核心组件采用了接口化设计,为保证接口通用性,对外暴露的方法有个别删减。
- 框架核心组件大量使用了
gvar
泛型,以提高易用性、屏蔽底层的具体类型实现。为保证稳定性和易用性,框架在未来2-3
年内不会考虑使用Golang
官方泛型。官方泛型在框架部分组件的部分特性下有改造价值。