跳到主要内容
版本:2.10.x(Latest)
信息

v2 版本开始,最新的 CLI 工具版本功能会随着 GoFrame 框架的最新版本编译,引入如果本地的 CLI 工具自动化生成的代码与项目的 GoFrame 框架版本出现兼容性问题时,建议升级项目框架版本,或者自定义安装旧版本的 CLI 工具。旧版本CLI工具安装方式参考仓库首页介绍: https://github.com/gogf/gf-cli

重要说明🔥

  • CLI 工具提供的代码生成功能,目的是 规范化项目代码编写简化项目开发复杂度让开发者能够把精力聚焦于业务逻辑本身
  • CLI 工具本身会需要有一定前置的学习和理解成本(尽量理解为什么),但在熟练之后,大家的开发工作将会事半功倍。
  • CLI 工具的代码生成功能针对于企业级项目、多成员的团队性项目中收益会非常高。但针对于单人小型项目,开发者可根据个人意愿评估是否选择使用。 GoFrame 框架本身只是提供了基础组件,采用了组件化的灵活设计,不会对项目代码做严格的要求;但 CLI 工具会有一定的条框限制,目的是使得团队中每个成员的步调和风格一致,不会使得开发者的代码编写过于随意。

使用方式

$ gf gen -h
USAGE
gf gen COMMAND [OPTION]

COMMAND
ctrl parse api definitions to generate controller/sdk go files
dao automatically generate go files for dao/do/entity
enums parse go files in current project and generate enums go file
pb parse proto files and generate protobuf go files
pbentity generate entity message files in protobuf3 format
service parse struct and associated functions from packages to generate service go file

DESCRIPTION
The "gen" command is designed for multiple generating purposes.
It's currently supporting generating go files for ORM models, protobuf and protobuf entity files.
Please use "gf gen dao -h" for specified type help.

相关文档

📄️ 模块规范-gen service

GoFrame框架的业务模块规范化管理工具,通过分析logic业务逻辑层代码自动生成service接口定义和模块注册代码,实现业务逻辑实现与接口定义的自动化分离。该工具采用包管理方式组织业务模块,通过接口化设计实现模块间解耦,支持从具体实现直接生成接口定义,降低重复编码工作量,提高模块间透明度和调用便捷性。需要注意该方式为可选的代码管理方式,框架同样支持标准的先定义接口后编码实现的开发模式,适用于不同团队的开发习惯和项目场景。

📄️ 协议编译-gen pb

GoFrame框架的协议编译命令工具,用于编译protobuf协议文件并自动生成相应的Go语言接口代码和控制器文件。该命令支持自定义接口文件和控制器文件的输出路径配置,能够智能识别已存在的接口实现方法并避免重复生成,有效防止代码覆盖。通过gf gen pb命令可以快速完成从proto协议定义到Go代码实现的转换,显著提升gRPC服务开发效率,简化微服务架构中的接口定义和实现流程。

📄️ 数据表PB-gen pbentity

GoFrame框架提供的数据表结构至protobuf文件的自动转换工具,通过gf gen pbentity命令读取数据库表结构生成对应的proto数据结构定义文件。该工具与gen dao模块生成的entity不同,pbentity主要用于gRPC服务中的数据传输实体,支持多种数据库类型,可自定义字段命名格式和JSON标签格式,提供灵活的类型映射配置,适用于需要同时提供HTTP和gRPC服务的微服务架构,实现数据库表结构与protobuf协议定义的自动同步维护。