File tree Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -453,6 +453,41 @@ $menu = (new CliMenuBuilder)
453
453
$menu->open();
454
454
```
455
455
456
+ #### Custom Control Mapping
457
+
458
+ This functionality allows to map custom key presses to a callable. For example we can set the key press "x" to close the menu:
459
+
460
+ ``` php
461
+ $exit = function(CliMenu $menu) {
462
+ $menu->close();
463
+ }
464
+
465
+ $menu = (new CliMenuBuilder)
466
+ ->addItem('Item 1')
467
+ ->build();
468
+
469
+ $menu->addCustomMapping("x", $exit);
470
+
471
+ $menu->open();
472
+ ```
473
+
474
+ Another example is mapping shortcuts to a list of items:
475
+
476
+ ``` php
477
+ $myCallback = function(CliMenu $menu) {
478
+ // Do something
479
+ }
480
+
481
+ $menu = (new CliMenuBuilder)
482
+ ->addItem('List of [C]lients', $myCallback)
483
+ ->build();
484
+
485
+ // Now, pressing Uppercase C (it's case sensitive) will call $myCallback
486
+ $menu->addCustomMapping('C', $myCallback);
487
+
488
+ $menu->open();
489
+ ```
490
+
456
491
#### Dialogues
457
492
458
493
##### Flash
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ use PhpSchool \CliMenu \CliMenu ;
4
+ use PhpSchool \CliMenu \CliMenuBuilder ;
5
+
6
+ require_once (__DIR__ . '/../vendor/autoload.php ' );
7
+
8
+ $ exit = function (CliMenu $ menu ) {
9
+ $ menu ->close ();
10
+ };
11
+
12
+ $ menu = (new CliMenuBuilder )
13
+ ->setTitle ('Basic CLI Menu ' )
14
+ ->addItem ('First Item ' , $ exit )
15
+ ->addItem ('Second Item ' , $ exit )
16
+ ->addLineBreak ('- ' )
17
+ ->build ();
18
+
19
+ $ menu ->addCustomControlMapping ('x ' , $ exit );
20
+ $ menu ->open ();
You can’t perform that action at this time.
0 commit comments