jrosset/commandline

命令行管理库 (CLI)

2.0.1 2021-09-06 16:15 UTC

This package is auto-updated.

Last update: 2024-09-30 01:27:02 UTC


README

PHP 命令行管理库 (CLI)

last release licence nb releases

一个具有可配置的期望值和帮助自动生成的命令行选项解析器。

有两种类型的参数

  • 选项(短/长标签): -h--version
  • 值: my/path/to/a/file

安装

composer require jrosset/commandline

描述

首先,创建一个新的 CommandLine 对象,包含程序名称和描述。使用 addOptionaddValue 分别添加选项和值。默认的选项(-h / --help)和版本(--version)可以通过 addDefaultArguments 添加,使用 treatDefaultArguments 来启动相关的处理。

使用 parse 处理脚本参数:返回一个变量对象。

示例

<?php

use jrosset\CommandLine\CommandLine;
use jrosset\CommandLine\Argument\Option\Flag;
use jrosset\CommandLine\Argument\Parser\StringParser;
use jrosset\CommandLine\Argument\Value\Value;

$cmdline = new CommandLine('Checker', 'File checker', 'php checker.php');
$cmdline->addDefaultArguments();

$cmdline->addOption(new Flag('enhanced', false, 'Deep check ?'));

$cmdline->addValue(new Value('path', 'File path', new StringParser()));

var_dump($args = $cmdline->parse());
$cmdline->treatDefaultArguments($args);

会显示类似以下内容

class stdClass#13 (1) {
  public $enhanced => bool(false)
  public $path     => string("my/path/to/a/file")
}

自动帮助生成

CommandLine 为程序提供了命令行生成器。例如

Checker
File checker

php checker.php [OPTIONS] path
Arguments :
    path    string    File path

Options :
        -h --help       X     Affiche cette aide
           --enhanced         Deep check ?