基本介绍
程序需要通过命令行来管理程序启动入口,因此命令行管理组件也是框架的核心组件之一。 GoFrame 框架提供了强大的命令行管理模块,由 gcmd 组件实现。
使用方式:
import "github.com/gogf/gf/v2/os/gcmd"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gcmd
组件特性
gcmd 组件具有以下显著特性:
- 使用简便、功能强大
- 命令行参数管理灵活
- 支持灵活的
Parser命令行自定义解析 - 支持多层级的命令行管理、更丰富的命令行信息
- 支持对象模式结构化输入/输出管理大批量命令行
- 支持参数结构化自动类型转换、自动校验
- 支持参数结构化从配置组件读取数据
- 支持自动生成命令行帮助信息
- 支持终端录入功能
与 Cobra 比较
Cobra 是 Golang 中使用比较广泛的命令行管理库,开源项目地址: https://github.com/spf13/cobra
GoFrame 框架的 gcmd 命令行组件与 Cobra 比较,基础的功能比较相似,但差别比较大的在于参数管理方式以及可观测性支持方面:
gcmd组件支持结构化的参数管理,支持层级对象的命令行管理、方法自动生成命令,无需开发者手动定义手动解析参数变量。gcmd组件支持自动化的参数类型转换,支持基础类型以及复杂类型。gcmd组件支持可配置的常用参数校验能力,提高参数维护效率。gcmd组件支持没有终端传参时通过配置组件读取参数方式。gcmd组件支持链路跟踪,便于父子进程的链路信息传递。