Signatur
Beschreibung
UI\Key ist eine Klasse der PHP-UI-Erweiterung (PECL ui), die eine Taste einer Tastatur im Kontext von Ereignissen wie onKey repräsentiert. Sie wird typischerweise als Parameter in Callback-Funktionen übergeben, die auf Tastendruck- oder Tastenloslassen-Ereignisse reagieren.
Die Klasse stellt Informationen über die gedrückte oder losgelassene Taste bereit, etwa den Tastencode oder Modifier-Tasten wie Shift, Ctrl oder Alt. Damit lassen sich in nativen Desktop-Anwendungen, die mit der PHP-UI-Erweiterung erstellt wurden, komplexe Tastaturinteraktionen verarbeiten.
Typischerweise verwendet man UI\Key nicht direkt instanziiert, sondern empfängt Instanzen davon in den Ereignishandlern von UI-Controls wie UI\Controls\Entry oder anderen Steuerelementen, die Tastaturereignisse unterstützen.
Die Klasse gehört zur libui-Bindung für PHP und ist daher nur verfügbar, wenn die PECL-Erweiterung ui installiert ist. Sie eignet sich für die Entwicklung plattformübergreifender nativer GUI-Anwendungen in PHP.
Beispiele
Tastendruck-Ereignis in einem Entry-Control abfangen
<?php
use UI\Window;
use UI\Controls\Entry;
use UI\Key;
$window = new Window('Tastatur-Demo', 400, 300, true);
$entry = new Entry();
// onKey-Callback wird aufgerufen, wenn eine Taste gedrückt wird
$entry->onKey(function(Entry $entry, Key $key) {
// Gibt den Tastencode der gedrückten Taste aus
echo 'Taste gedrückt: ' . $key->getKey() . PHP_EOL;
// Prüfen ob Modifier-Tasten gehalten werden
if ($key->getModifier() & Key::Ctrl) {
echo 'Strg ist gedrückt' . PHP_EOL;
}
if ($key->getModifier() & Key::Shift) {
echo 'Shift ist gedrückt' . PHP_EOL;
}
});
$window->add($entry);
$window->show();
UI\run();
Erkennung von Sondertasten (z. B. Escape oder Enter)
<?php
use UI\Window;
use UI\Controls\Entry;
use UI\Key;
$window = new Window('Sondertasten-Demo', 400, 200, true);
$entry = new Entry();
$entry->onKey(function(Entry $entry, Key $key) {
// Prüfen auf Sondertasten über erweiterte Tastencodes
switch ($key->getExtKey()) {
case Key::Escape:
echo 'Escape wurde gedrückt – Eingabe abbrechen.' . PHP_EOL;
break;
case Key::Enter:
echo 'Enter wurde gedrückt – Eingabe bestätigen: ' . $entry->getText() . PHP_EOL;
break;
default:
// Normale Taste
break;
}
});
$window->add($entry);
$window->show();
UI\run();
// Wichtig · Fallstricke
Achtung: Die UI\Key-Klasse ist Teil der PECL-Erweiterung ui, die sich zum Zeitpunkt der Veröffentlichung noch in einem frühen Entwicklungsstadium befindet. Die API kann sich zwischen Versionen ändern, und die Dokumentation ist fragmentarisch. Es empfiehlt sich, den Quellcode auf GitHub als primäre Referenz zu verwenden.
Die Klasse ist nicht für Web-Anwendungen gedacht, sondern ausschließlich für native Desktop-GUI-Anwendungen, die via CLI ausgeführt werden. Die Erweiterung unterstützt Windows, macOS und Linux (GTK).
Nicht alle Plattformen unterstützen alle Tastencodes gleichermaßen. Beim Einsatz von Modifier-Tasten und Sondertasten sollte das Verhalten auf den Zielbetriebssystemen getestet werden.