Consola interactiva
Desde PHP 5.1.0, SAPI CLI ofrece una consola interactiva si se usa
con el modificador -a y PHP está compilado con la opción
--with-readline.
Al usar la consola interactiva, se puede escribir directamente código PHP que se
ejecuta al momento.
Ejemplo #1 Ejecutando código desde la consola interactiva
$ 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 consola interactiva, además, proporciona autocompletado mediante el tabulador
de funciones, constantes, nombres de clases, variables, llamadas a métodos
estáticos y constantes de clases.
Ejemplo #2 Autocompletado con el tabulador
Al pulsar dos veces la tecla tabulador habiendo múltiples opciones
de completados, se mostrará una lista con éstas:
php > strp[TAB][TAB]
strpbrk strpos strptime
php > strp
Cuando sólo hay una posible opción, sólo con pulsar una vez el tabulador
se completará el resto de la línea:
También funciona el autocompletado para nombres que se han definido
durante la sesión de consola interactiva:
php > $fooEsteEsUnNombreDeVariableMuyLargo = 42;
php > $foo[TAB]EsteEsUnNombreDeVariableMuyLargo
La consola interactiva almacena tu historial, al que se puede acceder usando
las teclas arriba y abajo. El historial se almacena en el fichero
~/.php_history.
Ya en PHP 5.4.0, la SAPI CLI provee las configuraciones de
php.ini, cli.pager
y
cli.prompt
. La configuración de cli.pager
permite a un programa externo (tal como less) para que funcione
como un paginador para la salida en lugar de se desplegado directamente en la
pantalla. Las configuraciones de cli.prompt
permite
cambiar el indicador de ingreso de órdenes php >
.
In PHP 5.4.0 también fue posible establecer las configuraciones de
php.ini en la shell interactiva utilizando una notación abreviada.
Ejemplo #3 Estableciendo configuraciones de php.ini en la shell interactiva
La configuración de cli.prompt
:
php > #cli.prompt=hola mundo :>
hola mundo :>
Usando comillas simples inclinadas es posible ejecutar código PHP en el indicador de órdenes:
php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hola';
hola
15:49:43 php > sleep(2);
15:49:45 php >
Establecer el paginador a less:
php > #cli.pager=less
php > phpinfo();
(salida desplegada en less)
php >
La configuración de cli.prompt
soporta unas cuantas secuencias
de escape:
Secuencias de escape de cli.prompt
Sequence: |
Description: |
\e |
Utilizado para agregar colores al ingreso de órdenes. Un ejemplo podría ser
\e[032m\v \e[031m\b \e[34m\> \e[0m
|
\v |
La versión de PHP. |
\b |
Indica cual bloque de PHP está dentro. Por ejemplo /* se
usa para indicar que está dentro de un comentario multilineal. El alcance externo es denotado por
php .
|
\> |
Indica el caracter de ingreso de órdenes. El caracter predeterminado es
> , pero cambia cuando la shell está dentro de un
bloque indeterminado o una cadena. Los caracteres posibles son: ' " {
( >
|
Nota:
Los ficheros que se han incluido en este modo mediante auto_prepend_file y auto_append_file se analizan
con algunas restricciones - p.ej. las funciones deben estar definidas
antes de que se carguen.
Nota:
La auto-carga no
está disponible al usar PHP en modo interactivo en CLI.