Dal PHP 5.1.0, la CLI SAPI fornisce una shell interattiva quando si usa l'opzione -a se PHP è compilato con l'opzione --with-readline .
Utilizzando la shell interattiva si può digitare codice PHP ed eseguirlo direttamente.
Example #1 Esecuzione di codice con la shell interattiva
$ 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 >
La shell interattiva fornisce anche il completamento automatic (tab completion) di funzioni, costanti, nomi di classe, variabili, metodi statici e costanti di classe.
Example #2 Tab completion
Premere il tasto Tab due volte quando ci sono molteplici possibilità di completamento visualizzerà un elenco di questi elementi:
php > strp[TAB][TAB] strpbrk strpos strptime php > strp
Quando esiste un solo completamento possibile, una pressione sul tasto tab completa il resto della linea:
php > strpt[TAB]ime(
Il completamento funziona anche per il nomi che sono stati definiti durante la sessione corrente della shell:
php > $fooThisIsAReallyLongVariableName = 42; php > $foo[TAB]ThisIsAReallyLongVariableName
La shell interattiva archiva lo storico che può essere consultato usando i tasti su e giù. Lo storico è salvato nel file ~/.php_history.
Da PHP 5.4.0, la CLI SAPI mette a disposizione
le impostazioni php.ini cli.pager
e
cli.prompt
. Il valore cli.pager
permette ad un programma esterno (come less) di
agire come un paginatore per l'output invece di visualizzarlo direttamente sullo
schermo. Il parametro cli.prompt
permette di
cambiare il prompt php >.
In PHP 5.4.0 è stato reso possibile modificare le impostazioni di php.ini
Example #3 Impostare i valori del php.ini nella shell interattiva
Il parametro cli.prompt
:
php > #cli.prompt=hello world :> hello world :>
Utilizzando gli apici inversi è possibile eseguire codice PHP nel prompt:
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 >
Impostazione del paginatore a less:
php > #cli.pager=less php > phpinfo(); (output displayed in less) php >
Il parametro cli.prompt
ammette alcune sequenze di
escape:
Sequenza | Descriztione |
---|---|
\e | Usata per aggiungere colori al prompt. Un esempio può essere \e[032m\v \e[031m\b \e[34m\> \e[0m |
\v | La versione del PHP. |
\b | Indica in che tipo di blocco si trova PHP. Per esempio /* indica che si è in un commento multilinea. L'ambito esterno è indicato da php. |
\> | Indica il caratter di prompt. L'impostazione predefinita è >, ma cambia quando la shell è all'interno di un blocco non terminato o una stringa. I caratteri utilizzabili sono: ' " { ( > |
Nota:
I file inclusi con auto_prepend_file e auto_append_file sono analizzati in questa modialità ma con qualche restrizione - es. le funzioni devono essere definite prima della chiamata.
Nota:
L'Autoloading non è disponibile usando PHP in modalità interattiva CLI.