jjulien / php-cli-helper
基于 CLI 的 PHP 程序辅助工具
Requires
- php: >=5.3.0
Requires (Dev)
- mockery/mockery: 0.9.*
- phpdocumentor/phpdocumentor: 2.*
- phpunit/phpunit: 4.8.12
This package is not auto-updated.
Last update: 2024-09-22 13:40:35 UTC
README
PHP CLI Helper
PHP CLI Helper 创建用于简化 PHP 命令行工具的开发。它目前支持命令行选项解析和验证。
使用概要
主要类是 CLIHelper\Helper
。您需要告诉这个类所有要支持选项及其行为。告诉辅助类解析选项后,它会验证用户是否违反了您定义的选项行为规则。如果发现违规,用户将收到一条帮助信息,显示选项应该如何使用以及违反了哪个选项规则。如果没有发现违规,则使用辅助对象检索选项值并确定用户指定的选项。
使用示例
代码
#!/usr/bin/php
<?php
require(dirname(__FILE__) . '/../vendor/autoload.php');
use CLIHelper\Helper;
$helper = new Helper();
$helper->newOption()
->withName("file-in")
->withHelp("Input file to be processed")
->withShort("-i")
->withLong("--file-in")
->required()
->build();
$helper->newOption()
->withName("file-out")
->withHelp("Output file for processing result")
->withShort("-o")
->withLong("--file-out")
->required()
->build();
$helper->newOption()
->withName("verbose")
->boolean()
->withHelp("Display verbose output")
->withShort("v")
->withLong("verbose")
->build();
$helper->parse();
# Reading options
if ($helper->getValue('verbose')) {
print 'Reading in file "' . $helper->getValue('file-in') . '" and saving output to "' . $helper->getValue('file-out') . '"' . "\n";
}
调用
$./sample-script.php
Option -i or --file-in is required
Option -o or --file-out is required
Usage: sample-script.php <-i VALUE | --file-in VALUE> <-o VALUE | --file-out VALUE> [-h | --help] [-v | --verbose]
-h, --help : Displays this message
-i, --file-in : Input file to be processed
-o, --file-out : Output file for processing result
-v, --verbose : Display verbose output
添加选项
有两种方式可以添加选项。您可以使用 CLIHelper\OptionBuilder
类,它可以通过在 CLIHelper\Helper
上使用便利方法 ->newOption()
获取。您也可以创建自己的 CLIHelper\Option
对象并调用 ->addOption($option)
在 CLIHelper\Helper
上。
选项可以是 Option::TYPE_BOOLEAN
或 Option::TYPE_VALUE
类型,默认是 Option::TYPE_VALUE
。 Option::TYPE_BOOLEAN
选项是开/关选项,例如常见的 "verbose" 选项。它没有值,它要么在命令行上提供,要么不提供。 Option::TYPE_VALUE
选项读取命令行后面的值。一个例子是 --file-in filename
,其中 --file-in
必须提供值。
使用 ->addOption($option)
的示例
#!/usr/bin/php
<?php
require(dirname(__FILE__) . '/../vendor/autoload.php');
use CLIHelper\Helper;
use CLIHelper\Option;
$helper = new Helper();
$option = new Option();
$option->setName("verbose");
$option->setShortOpt("-v");
$option->setLongOpt("--verbose");
$option->setType(Option::TYPE_BOOLEAN);
$option->setHelp("Display verbose output");
$helper->addOption($option);
$helper->parse();
使用 ->newOption()
的示例
#!/usr/bin/php
<?php
require(dirname(__FILE__) . '/../vendor/autoload.php');
use CLIHelper\Helper;
$helper = new Helper();
$helper->newOption()
->withName("verbose")
->boolean()
->withHelp("Display verbose output")
->withShort("v")
->withLong("verbose")
->build();
$helper->parse();