Los intérpretes de línea de comando para PHP interactivos no son ninguna novedad, existen muchas opciones desde hace tiempo, pero a partir de la versión de PHP 5.1.0 viene integrado en el SAPI del Intérprete de Comandos (siempre que hayas compilado PHP con la opción –with-readline), lo cual lo hace muy sencillo de usar.

Empecemos por la inicialización:


$ php -a

Interactive shell

php >

¿Fácil, no?. Y nada más, ahora toca empezar a escribir algo de código :-) . Recuerda usar el caracter “;” para terminar una instrucción. Para seguir escribiendo dentro de funciones, bucles, etc, puedes usar el salto de línea.


php > echo 'hola emagisteers!';

hola emagisteers!

php > if (true) {

php { echo 'Ejemplo de condición';

php { }

Ejemplo de condición

php >

Una ventaja del Interactive Shell es que tiene la función de autocompletar mediante tabulación, y funciona tanto para variables como funciones, clases o constantes.

Mediante las teclas arriba/abajo te puedes mover por el historial de instrucciones ejecutadas.

Las funciones creadas por el usuario no se mantienen entre sesiones, y del mismo modo, si estás haciendo diversas pruebas sobre la misma sesión, puede haber código ejecutado anteriormente que afecte al flujo actual de ejecución (alguna variable o constante inicializada anteriormente que pueda alterar tu valor esperado), así que hay que tenerlo en cuenta para evitar posibles resultados imprevistos.

Para salir de la interfaz, tan sólo hay que ejecutar exit; o bien usar la combinación Ctrl + C.

También puedes usar php -r para lanzar una simple línea de php:


$ php -r 'echo "Hola emagisteers\n";'

Hola emagisteers

Usos del Interactive Shell

Aunque a partir de la versión 5.4 se incluya un pequeño Servidor Web, vale la pena seguir usando el Interactive Shell en muchos casos.

  • Probar código: Verificar resultados de funciones, operaciones, precedencias de operadores, etc. se hace muy sencillo y rápido. Puedes copiar directamente código del manual de PHP y pegarlo en la consola, ejecutándose sin problema.
  • Enseñar, aprender: Tanto si estás aprendiendo PHP, como si quieres enseñar su funcionamiento a alguien, el Interactive Shell es muy útil para mostrar ejemplos rápidamente, sin tener que montar un entorno de pruebas. En nuestro equipo fue especialmente útil cuando preparamos la certificación de Zend PHP.
  • Soporte al desarrollo: Dispones de tu entorno de desarrollo local, pero tener una consola con la interfaz abierta hace que pruebes mucho más rápido aquellos casos en los que te queda una pequeña duda, sin tener que recargar la página ni introducir pruebas en tu código fuente.
  • Autocompletar: La mayoría de IDEs actuales disponen de soporte para la nomenclatura de funciones, pero en ocasiones estos utilizan muchísima memoria y se hacen lentos incluso para operaciones sencillas. En alguna ocasión, cuando más o menos recordáis el nombre pero no con total exactitud os puede ahorrar tiempo.

PHP como Shell Script

Desde CLI puedes ejecutar scripts escritos en PHP mediante:

$ php my_script.php

De todos modos, podría ser útil en alguna ocasión que el fichero se pudiera interpretar del mismo modo que un Shell Script. Pues bien, esto es posible definiendo en la primera línea de código el interprete de comandos que se va a utilizar:


#!/usr/bin/php

<?php echo "Hola de nuevo!\n"; ?>

Así, podremos lanzar el script (recuerda que debes tener permisos de ejecución) de esta forma:


$ ./my_script.php

Hola de nuevo!

Referencias

PHP Manual

http://php.net/manual/en/features.commandline.interactive.php

10 Examples To Inspire You To Use PHP Interactive Shell

http://www.techchorus.net/10-examples-inspire-you-use-php-interactive-shell

phpsh, una alternativa por facebook con acceso a la documentación:

http://www.phpsh.org/

Executing PHP files

http://php.net/manual/en/features.commandline.usage.php

 

Leave a reply

 

Your email address will not be published.