Seit PHP 5.1.0 bietet die CLI SAPI mit der -a Option eine interaktive Shell an, wenn PHP mit der --with-readline Option kompiliert wurde. Von PHP 7.1.0 an steht die interaktive Shell auch unter Windows zu Verfügung, wenn die readline Extension aktiviert ist.
Mittels der interaktiven Shell können sie PHP code eingeben und direkt ausführen lassen.
Beispiel #1 Ausführung von Code auf der interaktiven Shell
$ php -a Interactive shell php > echo 5+8; 13 php > function addTwo($n) php > { php { return $n + 2; php { } php > var_dump(addtwo(2)); int(4) php >
Die interaktive Shell bietet ebenfalls Tab-Autovervollständigung für Funktionen, Konstanten, Klassen, Variablen, statische Methoden und Klassenkonstanten.
Beispiel #2 Tab-Autovervollständigung
Zweimaliges Drücken der Tab-Taste im Falle mehrerer Möglichkeiten führt zu einer Auflistung dieser Möglichkeiten:
php > strp[TAB][TAB] strpbrk strpos strptime php > strp
Wenn es nur eine mögliche Vervollständigung gibt, führt ein einmaliges Drücken der Tab-Taste zur Vervollständigung der Zeile:
php > strpt[TAB]ime(
Autovervollständigung funktioniert auch für Namen, welche bereits während dieser interaktiven Session definiert wurden:
php > $fooThisIsAReallyLongVariableName = 42; php > $foo[TAB]ThisIsAReallyLongVariableName
Die interaktive Shell speichert den Verlauf von zuletzt eingegeben Zeilen. Auf diesen kann mittels der Pfeiltasten zugegriffen werden. Er wird in der ~/.php_history Datei gespeichert.
Seit PHP 5.4.0 bietet die CLI SAPI die php.ini Optionen cli.pager
und cli.prompt
. Die cli.pager
Option erlaubt einem externen Programm (wie etwa less) als
Pager für die Ausgabe zu agieren, anstatt dass diese direkt ausgegeben wird.
Die cli.prompt
Option erlaubt das Ändern der
php > Eingabeaufforderung.
Seit PHP 5.4.0 ist es auch möglich php.ini Optionen einfacher zu ändern.
Beispiel #3 Setzen von php.ini Optionen in der interaktiven Shell
Die cli.prompt
Option:
php > #cli.prompt=hello world :> hello world :>
Mittels Backticks kann PHP Code in dem Präfix ausgeführt werden:
php > #cli.prompt=`echo date('H:i:s');` php > 15:49:35 php > echo 'hi'; hi 15:49:43 php > sleep(2); 15:49:45 php >
Setzen des Pagers auf less:
php > #cli.pager=less php > phpinfo(); (output displayed in less) php >
Die cli.prompt
Option unterstützt einige
Escape-Sequenzen.
Sequenzen | Beschreibung |
---|---|
\e | Wird benutzt um Farben zur Eingabeaufforderung hinzuzufügen. Ein Beispiel: \e[032m\v \e[031m\b \e[34m\> \e[0m |
\v | Die PHP Version. |
\b | Gibt an, in welchem Block PHP sich befindet. Zum Beispiel gibt /* an, dass man sich gerade in einem mehrzeiligen Kommentar befindet. Der äußerste Block ist php. |
\> | Gibt das Eingabeaufforderungszeichen an. Standardmäßig ist dies >, ändert sich jedoch, wenn sich die Shell innerhalb eines nicht beendeten Blocks oder Strings befindet. Mögliche Buchstaben sind: ' " { ( > |
Hinweis:
Dateien, die mit auto_prepend_file und auto_append_file eingebunden wurden, werden in diesem Modus mit einigen Einschränkungen geparset - Funktionen müssen etwa vor dem Aufruf definiert werden.
Hinweis:
Automatisches Laden (autoload) ist im interaktiven PHP CLI Modus nicht verfügbar.