domingo, 27 de julio de 2014

Dos funciones del intérprete de PHP que tal vez no conociamos

Como es sabido PHP es un lenguaje interpretado; es decir, la ejecución de los scripts se hace a través de un intérprete, un programa que va ejecutando línea por línea el código contenido en el archivo .php y devuelve los resultados de cada sentencia o los errores según aplique.

Lo que tal vez muchos no conocen es que además de ejecutar scripts, revisar la sintaxis y semántica de los del código fuente, y en general ejecutar los programas que escribimos; el intérprete de PHP también tiene otras capacidades que son últiles para el programador y que veremos a continuación.

Revisión de la sintaxis del código

Suena un poco obvio pues como se mencionó al comienzo es deber del intérprete revisar las sintaxis y semántica del código fuente, y generar las alertas necesarias al programador cuando se encuentran errores. cuando se ejecuta un script el intérprete antes de ejecutar el código realiza estas validaciones, ¿Pero y si sólo queremos saber si un script no contiene errores se sintaxis sin necesidad de ejecutarlo? Sólo basta con ejecutarlo con el siguiente parámetro:

php -l mi_script.php

Reemplazando mi_script.php por el nombre del archivo que queremos revisar, con el parámetro -l le estamos diciendo al intérprete de PHP que revise la sintaxis del código pero que no lo ejecute. Si todo esta bien nos devolverá un mensaje como éste:

No syntax errors detected in mi_script.php

Pero si hay errores nos lo dirá, por ejemplo:

Parse error: syntax error, unexpected ''l jS \of F Y h:i:s A);
' (T_ENCAPSED_AND_WHITESPACE) in mi_script.php on line 4
Errors parsing mi_script.php

Es importante tener en cuenta que con esta opción PHP solo nos dirá si tenemos errores de sintaxis, no nos dirá si tenemos errores de semántica o de lógica.

Ejecutar un servidor web


Lo habitual al momento de desarrollar una aplicación web es implementar un entorno de desarrollo adecuado en el cual se tengan instalados todos los programas, servicios, entornos de desarrollo, editores, librerías, y demás elementos necesarios para escribir y probar el código creado; como por ejemplo XAMPP.

Sino tenemos el tiempo para implementar un entorno de desarrollo, o si no contamos con los medios o privilegios para hacerlo podemos acudir al propio interprete de php para tener un servidor web ligero pero funcional. Para lograrlo solo basta con ejecutarlo así:

php -S direccion_servidor:puerto -t ruta_aplicacion

El argumento -S debe ir en mayúscula y le indica a PHP que actúe como servidor web, el argumento -t sirve para indicarle a PHP dónde se encuentra el directorio con las aplicaciones.

Por ejemplo en el siguiente ejemplo el servidor será la máquina local y las conexiones se recibirán por el puerto 8080. La ruta de la aplicación es la ubicación donde está alojado el código fuente de la aplicación que para este caso es D:\Scripts\Php. En esa carpeta está el archivo index.php que contiene el siguiente código:
echo "Bienvenido visitante, hoy es ".date('l jS \of F Y h:i:s A');

Para levantar el servidor se debe ejecutar:

php -S 127.0.0.1:8080 -t D:\Scripts\Php

Al acceder por un navegador se visualizará algo así:

Servidor web ligero con PHP
Servidor web ligero con PHP

Y en el servidor se verá la información de los accesos así:

Servidor web ligero con PHP
Servidor web ligero con PHP

Para detener el servidor sólo basta con presionar Control + C.

Conclusiones

Son pocos los desarrolladores que interactúan directamente con el intérprete de PHP ya que la integración con otras tecnologías como Apache o MySQL por ejemplo y el uso de plataformas LAMPP, WAMPP , XAMPP y similares, brindan cierta abstracción que desliga un poco al programador de tener que manipular al intérprete gracias a que proveen interfaces gráficas muy amigables o programas que hacen las veces de asistentes para obtener lo que necesitamos.

PHP y su intérprete propiamente ofrecen una serie de opciones que nos permiten manipular de una forma más detallada como se ejecuta nuestro código y las cuales podemos consultar aquí. Como se ilustra en esta entrada es posible desarrollar aplicaciones en PHP teniendo a la mano el intérprete solamente, sin la necesidad de un editor de código fuente o complejos IDE adicionales.