PHP CLI Console
, (*1)
, (*2)
Installation
Download a latest package or use Composer:, (*3)
composer require czproject/phpcli
PhpCli requires PHP 8.0 or later, optionaly Readline extension., (*4)
Usage
``` php
use CzProject\PhpCli\ConsoleFactory;, (*5)
require DIR . '/vendor/autoload.php';, (*6)
$console = ConsoleFactory::createConsole();, (*7)
// 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();, (*8)
// input
$username = $console->input('Enter your name');, (*9)
$console->output('Hello! ', 'blue')
->output($username, 'green')
->output(' [user]', 'yellow')
->nl() // print new line
->output('Bye!', 'blue')
->nl();, (*10)
// input with default value
$username = $console->input('Enter your name', 'John');, (*11)
// confirm
$agree = $console->confirm('Do you want to continue?');, (*12)
// confirm with default value
$canQuit = $console->confirm('Really?', TRUE);, (*13)
// select
$value = $console->select('Select color:', [
'value' => 'label',
'#ff0000' => 'Red',
'#00ff00' => 'Green',
'#0000ff' => 'Blue',
]);, (*14)
// select with default value
$value = $console->select('Select color:', [
'value' => 'label',
'#ff0000' => 'Red',
'#00ff00' => 'Green',
'#0000ff' => 'Blue',
], '#ff0000');, (*15)
## Parameters
**Arguments**
```php
$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();
Options, (*16)
$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();
Supported types, (*17)
string
-
int and integer
float
-
bool and boolean
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/, (*18)