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:
php > strpt[TAB]ime(
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:
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.