Tutorial básico: Debug en PHP utilizando FirePHP

«Depurar es dos veces más difícil que escribir el código en primer lugar. Entonces si escribes el código tan astutamente como sea posible, no eres -por definición- tan listo como para depurarlo.» Brian Kernighan

Durante muchos años mi proceso de depuración en PHP se baso simplemente en utilizar echo y print_r, sinceramente no necesite más durante mucho tiempo.

Pero así como esta metodología es efectiva y extremadamente simple, también tiene restricciones, especialmente en aquellos sitios en donde PHP se ejecuta en segundo plano, sitios que por ejemplo utilizan AJAX hacen que el proceso de depurar mostrando mensajes directamente en el documento se vuelva algo muy dificultoso. La solución FirePHP.

tutorial debug php firephp

¿Que es FirePHP?

FirePHP es un complemento de Firefox que funciona de forma conjunta con otra extensión que los desarrolladores conocemos muy bien, estoy hablando de Firebug. FirePHP es una herramienta fundamental para aquellos que gusten de depurar código PHP de forma simple y sin complicaciones.

FirePHP es complemente gratuito, así que no hay excusas para aprender a utilizarlo.

El complemento de Firefox FirePHP funciona enviando mensajes a la consola de Firebug, estos mensajes pueden configurarse de distintos modos, e inclusive permiten el envío de variables para mostrar su contenido directamente en la consola.

¿Que necesitamos?

Muy pocas cosas, lo mejor, todas gratuitas:

  • Firefox
  • Firebug
  • FirePHP
  • Un servidor con PHP corriendo, comúnmente utilizaremos un entorno LAMP, si quieren instalarlo facilmente en Windows te recomiendo EasyPHP, en Mac MAMP y finalmente si tienes una computadora vieja en casa puedes montar un servidor casero de pruebas.

Eso es todo.

¿Como configurar FirePHP?

1º Lo primero que necesitamos es ir al sitio oficial de FirePHP e instalar el complemento en Firefox, esto no requiere ningún conocimiento, simplemente instalamos la extensión. Obviamente Firebug ya debería estar instalado anteriormente.

2º Ahora necesitamos descarga, también de la web oficial de FirePHP los archivos PHP necesarios para crear la comunicación entre nuestra aplicación PHP y la extensión, las bibliotecas necesarias se denominan FirePHPCore.

Una vez que descargues y descomprimas el core de FirePHP nos vamos a encontrar con una carpeta con el nombre FirePHPCore-0.3.2 2 (última versión estable del core), dentro de esta carpeta ingresamos a Lib y copiamos íntegramente la carpeta que encontramos dentro, la carpeta se llama FirePHPCore.

La carpeta FirePHPCore la debemos copiar y pegar directamente en el proyecto que queremos depurar, esto no es obligatorio, pero si practico, ya que después tendremos que colocar la ruta a la carpeta desde nuestra aplicación.

3º La configuración es muy simple, dentro del archivo PHP que deseamos depurar instalamos la biblioteca e inicializamos la instancia de FirePHP:

<?php
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
?>

4º Ahora simplemente enviamos los mensajes que deseemos a la consola, existen varios métodos, el más simple es:

$firephp->log('Mensaje enviado a consola', 'Mensaje');

Para ver el mensaje, ingresamos a Firefox, abrimos Firebug y nos dirigimos a la pestaña “consola” y lo que veremos será lo siguiente:

tutorial firebug español

Y eso es todo, pero vamos a ver algunas cosas más para aprovechar mejor la potencia de FirePHP.

Configurar tipos de mensajes

Con motivos de aprovechar mejor los distintos tipos de mensajes, y así lograr organizarnos mejor, podemos indicarle a FirePHP que tipo vamos a utilizar, para hacerlo simplemente indicamos el tipo al momento de inicializar, los 4 tipos distintos de mensajes posibles son:

$firephp->log('Un mensaje plano');
$firephp->info('Un mensaje de información');
$firephp->warn('Una alerta');
$firephp->error('Enviar un mensaje de error');

El resultado:

tipos mensajes firebug tutorial

Envío de variables y formato de salida

Obviamente, de solo mensajes no vive el hombre, probablemente necesitemos mostrar arrays, objetos, etc. Por ejemplo si lo que queremos es mostrar el contenido de un array y de paso formatearlo como una tabla podemos hacer algo similar a esto:

$table   = array();
$table[] = array('Titulo 1','Titulo 2', 'Titulo 3');
$table[] = array('Col 1, fila 1','Col 2, fila 1','Col 3, fila 1');
$table[] = array('Col 1, fila 2','Col 2, fila 2','Col 3, fila 2');
$table[] = array('Col 1, fila 3','Col 2, fila 3','Col 3, fila 3');

$firephp->table('Tabla', $table);  

fb($table, 'Tabla', FirePHP::TABLE);

El resultado:

formato mensajes firebug

Este tutorial es básico, FirePHP cuenta con más opciones de configuración, en mi caso y por el momento estas que describí en la entrada son las que más utilizo.

Categorizado en: