跳到主要内容
版本:2.7.x

基本介绍

程序需要通过命令行来管理程序启动入口,因此命令行管理组件也是框架的核心组件之一。 GoFrame 框架提供了强大的命令行管理模块,由 gcmd 组件实现。

使用方式

import "github.com/gogf/gf/v2/os/gcmd"

接口文档

https://pkg.go.dev/github.com/gogf/gf/v2/os/gcmd

组件特性

gcmd 组件具有以下显著特性:

  • 使用简便、功能强大
  • 命令行参数管理灵活
  • 支持灵活的 Parser 命令行自定义解析
  • 支持多层级的命令行管理、更丰富的命令行信息
  • 支持对象模式结构化输入/输出管理大批量命令行
  • 支持参数结构化自动类型转换、自动校验
  • 支持参数结构化从配置组件读取数据
  • 支持自动生成命令行帮助信息
  • 支持终端录入功能

Cobra 比较

CobraGolang 中使用比较广泛的命令行管理库,开源项目地址: https://github.com/spf13/cobra

GoFrame 框架的 gcmd 命令行组件与 Cobra 比较,基础的功能比较相似,但差别比较大的在于参数管理方式以及可观测性支持方面:

  • gcmd 组件支持结构化的参数管理,支持层级对象的命令行管理、方法自动生成命令,无需开发者手动定义手动解析参数变量。
  • gcmd 组件支持自动化的参数类型转换,支持基础类型以及复杂类型。
  • gcmd 组件支持可配置的常用参数校验能力,提高参数维护效率。
  • gcmd 组件支持没有终端传参时通过配置组件读取参数方式。
  • gcmd 组件支持链路跟踪,便于父子进程的链路信息传递。

相关文档