darkelfe14728/commandline

Command line management library (CLI)


Keywords
cli, parser
License
CC-BY-4.0

Documentation

PHPCommandLine

Command line management library in PHP (CLI)

nb releases last release licence

A command-line options parser with configurable expects and help auto generation.

There is two kind of arguments :

  • options (short/long tag) : -h or --version
  • values : my/path/to/a/file

Description

At first, create a new CommandLine with program name and description. Add options and values by using respectively addOption and addValue. Default options for help (-h / --help) and version (--version) can be add with addDefaultArguments and use treatDefaultArguments for launching associated treatments.

Treat script arguments with parse : return an object of variables.

Example

<?php

use CommandLine\CommandLine;
use CommandLine\Argument\Option\Flag;
use CommandLine\Argument\Parser\StringParser;
use 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);

Would display something like that :

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

Automatic help generation

CommandLine provide a generator for command-line of programme. Example :

Checker
File checker

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

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