ignasbernotas / phkey
A PHP based API to capture key presses from the terminal.
0.1.1
2016-04-13 18:53 UTC
Requires
- php: >=5.5.9
- ext-readline: *
- symfony/event-dispatcher: ~2.8
Requires (Dev)
- phpunit/phpunit: 4.8
This package is not auto-updated.
Last update: 2024-12-21 20:14:10 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 ignasbernotas/phkey
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 \Iber\Phkey\Events\KeyPressEvent; use \Iber\Phkey\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.