atatusoft-ltd / php-key-listener
A PHP based API to capture key presses from the terminal.
0.2.1
2023-03-09 08:26 UTC
Requires
- php: >=8.2
- ext-json: *
- ext-readline: *
- symfony/event-dispatcher: ^6.2
Requires (Dev)
- codeception/codeception: ^5.0
This package is auto-updated.
Last update: 2024-11-09 11:53:25 UTC
README
PHP based command line key listener.
This library provides an API to capture keys from the terminal. It currently supports latin-basic range of characters such as direction keys, function keys (F*), enter, space, insert, delete, backspace, escape, a-z, etc.
Installation
You can either download this library as a zip, or simply install it via composer:
composer require atatusoft-ltd/php-key-listener
Limitations
This package only works on UNIX/Linux based systems since the Windows PHP version doesn't not support the readline extension.
Example
Capture all keys
use \Atatusoft\PhpKeyListener\Events\KeyPressEvent; use \Atatusoft\PhpKeyListener\Environment\Detector; $detect = new Detector(); $listener = $detect->getListenerInstance(); $eventDispatcher = $listener->getEventDispatcher(); $eventDispatcher->addListener('key:press', function(KeyPressEvent $event) { echo $event->getKey(), PHP_EOL; }); $eventDispatcher->addListener('key:enter', function(KeyPressEvent $event) use ($eventDispatcher) { echo 'Key "', $event->getKey(), '" was pressed. Quitting listener.', PHP_EOL; // notify the listener to stop $eventDispatcher->dispatch('key:stop:listening'); }); $listener->start();
License
Licensed under MIT.