基本介绍
程序需要通过命令行来管理程序启动入口,因此命令行管理组件也是框架的核心组件之一。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
组件支持链路跟踪,便于父子进程的链路信息传递。