Per depurar el codi escrit al servidor PHP primer s’ha de configurar l’entorn. En aquest cas, s’han d’instal·lar dues extensions al navegador Mozilla Firebug.
La primera extensió s’anomena Firebug. Molts de vosaltres ja la coneixeu, perquè és molt utilitzada per depurar codi del costat client, normalment Javascript. En el nostre cas, la utilitzareu per depurar codi de servidor amb alguna ajuda més. Però primer instal·lareu el programa Firebug al navegador Mozilla Firefox. Podeu descarregar-vos l’extensió de la següent adreça.
Tot seguit instal·lareu la primera ajuda per depurar PHP, l’extensió FirePHP. Aquesta extensió només es pot instal·lar si prèviament teniu instal·lat Firebug. La podeu descarregar i instal·lar de la següent adreça.
Si veieu les extensions instal·lades al navegador Firefox haurien d’aparèixer almenys aquestes dues. Vegeu la figura figura per comprovar que les teniu instal·lades.
Per descomptat, encara no heu fet res. Encara no podeu depurar codi al servidor, ja que només heu instal·lat programes al client. Haureu d’instal·lar alguna llibreria al servidor. La llibreria és FirePHP, però del costat servidor. La podeu descarregar aquí.
El contingut d’aquest arxiu s’ha de descomprimir a la carpeta HTML de la màquina virtual de l’apartat: El meu projecte PHP, 'Hola, Món'..
Realitzareu la instal·lació de la llibreria de la següent manera. Enviareu l’arxiu comprimit a la màquina virtual amb la comanda:
scp firephp-core-0.4.0.zip willy@192.168.56.101:.
A la comanda anterior se suposa que el fitxer firephp-core-0.4.0.zip
es troba en el directori actual des d’on s’executa la comanda, així com l’usuari de la màquina virtual es diu Willy i la IP de la màquina anomenada servidor PHP és la 192.168.56.101. Modifiqueu la comanda anterior segons les vostres necessitats.
Una vegada realitzada la comanda anterior, ja teniu el fitxer al servidor PHP. S’ha de descomprimir i enviar el seu contingut a la carpeta /var/www/html.
Accediu via SSH a la màquina servidor PHP i realitzeu les comandes següents:
ssh willy@192.168.56.101
sudo apt-get update
sudo apt-get install unzip
unzip firephp-core-0.4.0.zip
mv firephp-core-0.4.0/lib/FirePHPCore /var/www/html/FirePHPCore
Veieu que només ens interessa la carpeta FirePHPCore, on es troben les llibreries per depurar l’aplicació web escrita en PHP (vegeu la figura figura).
Una vegada s’ha instal·lat (s’ha copiat al servidor) s’ha d’incloure a les pàgines PHP que necessiteu depurar. Per exemple, l’incloureu a la pàgina index.php utilitzada en l’apartat 1 d’aquesta unitat. Per incloure’l afegireu la següent línia al principi del document:
require_once('FirePHPCore/fb.php');
A més a més, s’ha d’activar el buffer de PHP perquè funcioni la llibreria FirePHP. Aquesta s’activa amb la instrucció:
Aquesta instrucció s’ha d’escriure just després de realitzar la inclusió de la llibreria FirePHP. Una vegada fetes aquestes modificacions ja podeu utilitzar les instruccions de la llibreria FirePHP per depurar l’aplicació. Per exemple, feu la següent modificació a la pàgina index.php:
<?php
require_once('FirePHPCore/fb.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
$var = "<h1>Hola, Món</h1>";
fb($var);
fb($var, "Una variable");
fb($var, FirePHP::WARN);
fb($var, FirePHP::INFO);
fb($var, 'Una variable amb un error de tipus', FirePHP::ERROR);
echo $var;
?>
</body>
</html>
Per activar en el navegador la depuració del codi PHP s’ha d’accedir a la pàgina PHP que es vol depurar i clicar en la icona del programa Firebug. Després cal tornar a executar la pàgina PHP; normalment, amb F5 ja tindreu el resultat esperat.
La depuració de l’execució anterior es guarda en un arxiu temporal (buffer) que llegeix el programa client Firebug per mostrar-la per pantalla. La informació resultant de la depuració del codi la podeu veure a la consola del mateix Firebug. Vegeu la figura per comprovar el resultat.
Com veieu, la funció fb de la llibreria FirePHP ens permet escriure a la consola del programa Firebug. Podeu mostrar el contingut d’una variable en un moment donat i podem forçar que la informació que mostra la consola sigui de tipus informatiu (FirePHP::INFO), de tipus alerta (FirePHP::WARN) o de tipus error ( FirePHP::ERROR). Aquests tipus ens poden ser molt útils per discriminar les alertes.
També podeu veure les crides a les diverses funcions que s’han realitzat fins a arribar al punt que ens interessa depurar del codi. Per exemple, modifiqueu el fitxer anterior amb aquest:
<?php
require_once('FirePHPCore/fb.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
$var = "<h1>Hola, Món</h1>";
fb($var);
fb($var, "Una variable");
fb($var, FirePHP::WARN);
fb($var, FirePHP::INFO);
fb($var, 'Una variable amb un error de tipus', FirePHP::ERROR);
echo $var;
function hola() {
fb('Hola, Món!', FirePHP::TRACE);
}
function salutacio() {
hola();
}
salutacio();
?>
</body>
</html>
El resultat que veureu per consola del programa Firebug el podeu veure a la figura figura.
Observeu que veieu totes les funcions que s’han executat fins a arribar al codi depurat.
Existeixen moltes més opcions, però, com sempre, s’han explicat les més importants. Podeu anar a la pàgina oficial per saber-ne més.