Solitamente l’attività di debugging non è mai vista di buon occhio dagli sviluppatori. Ai più sembra una perdita di tempo, mentre effettuare un debug preciso e periodico può solo portare enormi benefici alla stabilità e alla sicurezza delle applicazioni progettate, piccole o grandi che siano.
Il Debug in PHP
In php, come in altri linguaggi, scrivere codice leggibile e ‘parlante’ è una delle principali caratteristiche di cui deve dotarsi lo sviluppatore che, inoltre, deve saper scrivere codice in cui individuare eventuali errori non sia un’attività proibitiva.
Per far questo, occorre solitamente alzare il livello di error-reporting in ambiente di sviluppo, per abbassarlo al minimo nell’ambiente di produzione finale in cui, file di logs pesanti e pieni di errori poco importanti non farebbero altro che appesantire server e applicazione.
A tale scopo, appunto, php mette a disposizione un’istruzione molto importante :
error_reporting ([ int $level ] )
Come avrete intuito, con tale istruzione inserita nel file php.ini dell’applicazione o del progetto potrete regolare il livello di debug dell’applicazione stessa in modo da alzarlo o abbassarlo facilmente a seconda delle esigenze specifiche. Solitamente, come detto, la fase di test e dbug più spinta si effettua nell’ambiente di sviluppo mentre su quello che ospita l’applicazione web live ci si limita ad evidenziare solo errori critici.
Sul manuale del sito ufficiale php.net trovate tutte le varie opzioni a disposizione per specificare il livello di debug, ma per avere una tabella riassuntiva utile potete consultare questo link.
Tipi di Errore
Prima di addentrarci e scoprire alcuni tools importanti con cui evidenziare e gestire gli errori, è bene conoscere le 4 tipologie presenti nel php :
- Syntax Errors – si tratta di errori banali da risolvere, ma pericolosi per l’applicazione. Eccovi un tipico messaggio di tale tipologia di errore : Parse error: syntax error, unexpected T_ECHO in /Document/Root/example.php on line 6 Siamo di fronte, solitamente, ad errori che evidenziano l’assenza del ; o di una parentesi o dei doppi apici, classici errori di sintassi. Va detto che, come in questo caso, la riga segnalata nel messaggio di errore è sempre la seguente a quella del codice in cui l’errore è presente. In tal caso, quindi, andrete a ricercarlo nella riga 5. L’errore di sintassi, ovviamente, blocca l’esecuzione dell’applicazione.
- Warnings – rispetto al caso precedente, che blocca l’applicazione, in tal caso nessuno stop. Si tratta di alert, in sostanza, segnalazione di errori come spazi bianchi ad inizio file (con estensione php) o path names di inclusione non corretti o passaggio di un numero di parametri a una funzione sbagliato.
- Notices – si tratta, come dice anche il nome, di notifiche più che di messaggi di errore veri e propri. Anche se non sono bloccanti nell’esecuzione dell’applicazione, risultano terribilmente utili perché evidenziano alcuni piccoli bugs che, sommati, l’uno con l’altro potrebbero diventar letali. Basti pensare alla stampa di record null prelevati da un database, chiavi primarie non definite e simili
- Fatal Errors – non hanno bisogno di presentazioni. Anche se si tratta di errori fatali per l’applicazione, sono solitamente così palesi e marchiani da esser facilmente individuabili e risolvibili. Un errore simile : Fatal error: Call to undefined function create() in /Document/Root/example.php on line 23 va direttamente al nocciolo della questione, come vedete. Infatti,nella maggior parte dei casi si tratta di classi o funzioni non definite.
Tools
Dopo questa introduzione possiamo passare a presentare 4 tools tra i più utilizzati e affidabili per effettuare un debug in php.
1. DBG
DBG è un debugger molto utilizzato per applicazioni realizzate in PHP che mette a disposizione anche strumenti essenziali per la profilazione. Il tool, grazie alle sue funzionalità, consente di rilevare bugs, visualizzare i valori associati alle variabili e rilevare le chiamate alle funzioni presenti nel codice.
2. PHP Dyn
PHP Dyn è una comoda estensione PHP che aiuta ad effettuare l’attività di debugging sugli script.
3. Xdebug
Probabilmente è il metodo più usato dagli sviluppatori per un debug sicuro e preciso del codice php. E’ una libreria professionale che consente di effettuare sia il profiling che il debug delle applicazioni web. Il bello è che non svolge solo il compito di debugger, ma permette anche di calcolare il tempo totale di compilazione o di esecuzione di un determinato script, con tanto di test sulle prestazioni. Può essere utilizzato per correggere errori e/o migliorare le prestazioni su qualsiasi tipologia di progetto e non è fondamentale utilizzarlo solo per i grandi progetti. In rete trovate decine di guide e tutorials che spiegano come utilizzare al meglio questo strumento.
4. MacGDBp
Utility per debuggare codice php in Mac OSX. Il programma è gratuito e semplicissimo da utilizzare. L’unica operazione “difficile”, forse, riguarda l’istallazione del componente aggiuntivo xdebug. Siccome non esistono segreti, eccovi una semplice guida per effettuare questa procedura in questa pagina.
Per finire, anche se non si tratta propriamente di un tool, non posso non segnalarvi un’ultima, ma non meno importante metodologia di debug : FirePHP. Si tratta di un’estensione Firefox che và a completare la famosa Firebug e consente un ottimo debug del codice php. Eccovi una fantastica guida da seguire a tale scopo.


Tweets that mention Debug di codice Php : tipi di errore e 4 tools per rendere più facile il lavoro -- Topsy.com - 12 agosto 2010
[...] This post was mentioned on Twitter by PHP Italia, Giovanni Riccio. Giovanni Riccio said: Debug di codice Php : tipi di errore e 4 tools per rendere più facile il lavoro http://goo.gl/fb/Qcyuq [...]
Debug su Wordpress con debugConsole | Pecciola - 17 novembre 2010
[...] aver già presentato 4 tools per gestire al meglio il debug in php, scendiamo in dettaglio direttamente su WordPress. Avere un debug interno alla piattaforma è, [...]