czproject / phpcli
PHP CLI 应用的辅助类。
v5.0.0
2023-04-06 12:24 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- nette/tester: ^2.0
This package is auto-updated.
Last update: 2024-09-06 15:38:12 UTC
README
安装
composer require czproject/phpcli
PhpCli 需要 PHP 5.6 或更高版本,可选的 Readline 扩展。
用法
use CzProject\PhpCli\ConsoleFactory; require __DIR__ . '/vendor/autoload.php'; $console = ConsoleFactory::createConsole(); // output $console->output('CzProject CLI Simple Console', 'green') ->nl() // new line ->output('Hey!', 'yellow') ->nl() ->output('Fred!', 'blue') ->nl() ->output('Fred is dead!', 'red') ->nl() ->output(['nooooooo...!', ' ', 'But, no problem!'], 'gray') ->nl() ->output('The end.') ->nl(); // input $username = $console->input('Enter your name'); $console->output('Hello! ', 'blue') ->output($username, 'green') ->output(' [user]', 'yellow') ->nl() // print new line ->output('Bye!', 'blue') ->nl(); // input with default value $username = $console->input('Enter your name', 'John'); // confirm $agree = $console->confirm('Do you want to continue?'); // confirm with default value $canQuit = $console->confirm('Really?', TRUE); // select $value = $console->select('Select color:', [ 'value' => 'label', '#ff0000' => 'Red', '#00ff00' => 'Green', '#0000ff' => 'Blue', ]); // select with default value $value = $console->select('Select color:', [ 'value' => 'label', '#ff0000' => 'Red', '#00ff00' => 'Green', '#0000ff' => 'Blue', ], '#ff0000');
参数
参数
$name = $console->getArgument(0)->getValue(); // string|NULL $size = $console->getArgument(1, 'int') ->setRequired() ->addRule(function ($value) { return $value > 0; }) ->getValue(); $price = $console->getArgument(2, 'float') // float ->setDefaultValue(100.0) ->getValue();
选项
$name = $console->getOption('name')->getValue(); // string|NULL $size = $console->getOption('size', 'int') ->setRequired() ->addRule(function ($value) { return $value > 0; }) ->getValue(); $price = $console->getOption('price', 'float') // float ->setDefaultValue(100.0) ->getValue(); $words = $console->getOption('word') ->setRepeatable() ->getValue();
支持的类型
字符串
int
和integer
浮点数
bool
和boolean
许可证: 新BSD许可证
作者:Jan Pecha,https://www.janpecha.cz/