Completed
Push — master ( df8184...e3b994 )
by Aydin
02:31
created

examples/input-custom.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
use PhpSchool\CliMenu\CliMenu;
4
use PhpSchool\CliMenu\Builder\CliMenuBuilder;
5
use PhpSchool\CliMenu\Input\Text;
6
use PhpSchool\CliMenu\Input\InputIO;
7
use PhpSchool\CliMenu\MenuStyle;
8
9
require_once(__DIR__ . '/../vendor/autoload.php');
10
11
$itemCallable = function (CliMenu $menu) {
12
    $style = (new MenuStyle())
13
        ->setBg('yellow')
14
        ->setFg('black');
15
    
16
    $input = new class (new InputIO($menu, $menu->getTerminal()), $style) extends Text {
17
        public function validate(string $value) : bool
18
        {
19
            //some validation
20
            return true;
21
        }
22
    };
23
24
    $result = $input->ask();
25
26
    var_dump($result->fetch());
0 ignored issues
show
Security Debugging Code introduced by
var_dump($result->fetch()); looks like debug code. Are you sure you do not want to remove it? This might expose sensitive data.
Loading history...
27
};
28
29
$menu = (new CliMenuBuilder)
30
    ->setTitle('Basic CLI Menu')
31
    ->addItem('Enter password', $itemCallable)
32
    ->addLineBreak('-')
33
    ->setMarginAuto()
34
    ->build();
35
36
$menu->open();