darkelfe14728/commandline

此包已被弃用且不再维护。作者建议使用 jrosset/commandline 包。

命令行管理库 (CLI)

2.0.0 2021-09-01 18:21 UTC

This package is auto-updated.

Last update: 2021-09-01 18:25:20 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 ?