> Manuales > Debug en PHP con FirePHP

Cómo utilizar el código PHP de FirePHP para mostrar mensajes de debug, que podremos visualizar en la consola de Firebug.

En este nuevo artículo vamos a mostrar paso a paso cómo tenemos que hacer para usar FirePHP en nuestras aplicaciones y facilitarnos las tareas de depuración de errores en PHP. Aprenderemos a mostrar algunos mensajes de log, sobre variables normales y sobre arrays. Además veremos cómo podemos ejecutar una instrucción para que los mensajes de debug no aparezcan en la consola, útil para aplicaciones en producción.

Este artículo forma parte de una serie de artículos en los que estamos explicando el uso de FirePHP que deberías haber leído en el Manual de FirePHP.

Cómo utilizar la clase de FirePHP para mostrar mensajes de debug

Ahora que tenemos FirePHP instalado en nuestro Firefox y tenemos los archivos PHP para poder lanzar mensajes a la consola, podemos ver un sencillo script para ver de qué manera trabajar con estos sistemas.

Lo que vamos a hacer es un archivo PHP que, al verlo en Firefox, nos mostrará unos mensajes en la consola de Firebug. Será simple para que todo el mundo lo pueda entender:

A) Incluir el archivo de PHP con el código de FirePHP.

require_once('../FirePHPCore/FirePHP.class.php');

B) Ejecutar la función PHP ob_start(); para que la salida de PHP se almacene en un buffer, hasta que se complete la página. Esto nos permitirá crear mensajes para la consola en cualquier momento del código PHP. Recordar que los mensajes de FirePHP viajan en las cabeceras del HTTP y si no se hace uso del buffer puede que ocurra que las cabeceras se hayan enviado, junto con el contenido HTML de la página, y que nuestros mensajes no se visualicen.

ob_start();

Nota: si la directiva de PHP.ini output_buffering está activada, no necesitaríamos hacer el ob_start().

C) Instanciar un objeto de la clase FirePHP, que utilizaremos para enviar mensajes a la consola, por medio de sus métodos.

$mifirePHP = FirePHP::getInstance(true);

D) Enviar mensajes de log a la consola. Ahora puedes crear variables PHP y mostrar sus contenidos de la siguiente manera:

$mivariable=2;
$mifirePHP->log($mivariable, "Mensaje");

Con este otro código se crearía un Array y se mostraría luego su contenido:

$miArray = array("indice" => "valor", "otra cosa" => "otro valor");
$mifirePHP->log($miArray, "Este es el contenido del Array miArray");

El resultado de mostrar esos valores aparecerá, como se decía, en la consola de Firebug. Pero ten en cuenta que tienes que habilitar las funcionalidades de "Consola" y "Red" dentro de Firebug. Ahora, dejo una imagen de los resultados de mostrar el contenido de esas variables en la consola:

Opcionalmente: Evitar que los mensajes aparezcan en la consola.

Si estamos programando en nuestro sitio de desarrollo, no habrá problemas en que enviemos ciertas informaciones sensibles por la cabecera del HTTP hacia la consola de FirePHP. No obstante, como decíamos anteriormente en el manual de FirePHP, en sitios web en producción debemos cuidar que no se envíe por la cabecera ninguna información sensible, que pueda afectar a la seguridad de tus aplicaciones web o a la privacidad de los usurarios que te visitan.

Si estamos programando con las clases (de programación orientada a objetos) de FirePHP, existe un único método para conseguir esto. En concreto el método se llama setEnabled() y tenemos que enviar como parámetro el valor false.

$mifirePHP->setEnabled(false);

Con esta sencilla instrucción conseguiremos que, a partir del momento de ejecutarla, no se muestren mensajes en la consola. Podemos ponerla a continuación de la instanciación del objeto FirePHP para que no se muestre ningún mensaje en la página. Incluso podemos vincular esa instrucción a una comprobación sobre si un usuario administrador ha hecho login, o algo parecido, que evitaría que los visitantes generales vieran mensajes, pero permitiría a los administradores recibirlos y poder depurar aplicaciones también en servidores de producción.

Código completo de página PHP que utiliza FirePHP

El script PHP completo de las pruebas de FirePHP que hemos realizado en este artículo es el siguiente:

<?php
require_once('../FirePHPCore/FirePHP.class.php');
ob_start();

//instanciar un objeto de la clase FirePHP
$mifirePHP = FirePHP::getInstance(true);
//evito que se muestren los mensajes en la consola de firebug
//$mifirePHP->setEnabled(false);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
   <title>Untitled</title>
</head>

<body>
Puedo hacer lo que quiera en la página

<?php
//puedo hacer lo que quiera tb en PHP...

$mivariable=2;
$mivariable*=389;
$mifirePHP->log($mivariable, "Mensaje");

$miArray = array("indice" => "valor", "otra cosa" => "otro valor");
$mifirePHP->log($miArray, "Este es el contenido del Array miArray");
?>

</body>
</html>

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual