基本介绍

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

相关章节





Content Menu

  • No labels

1 Comment

  1. 新手小白,对命令管理模块不甚理解

    我已在cmd文件夹创建了基于命令行对象的自定义命令

    接下来该怎么操作(类似执行laravel的php artisan XXXXXXX)