Debug delle funzioni in PHP con debug_print_backtrace

Debug delle funzioni in PHP con debug_print_backtrace

Per eseguire il debug in PHP, generalizzando, siamo soliti usare la funzione var_dump.

Ma ha dei limiti, in quando esegue il dump solo di ciò che gli è passato come argomento.

Se vogliamo fare il debug di una funzione, andando a vedere anche da dove è stata chiamata inizialmente, possiamo usare un'ottima funzione: debug_print_backtrace!

Vediamo due esempi banali.

Nel primo le funzioni non hanno nessun parametro:

function a() {
    b();
}

function b() {
    debug_print_backtrace();
}

a();

A video dovreste vedere una cosa del genere:

#0 b() called at [/var/www/debug_stack.php:4]

#1 a() called at [/var/www/debug_stack.php:11]

Se fate prove con più funzioni, avrete altre righe di chiamata.

In pratica risale sempre alla chiamata iniziale.

Questo un esempio con parametri:

function a($arg) {
    b('funzione b');
}

function b($arg) {
    debug_print_backtrace();
}

a('funzione a');

La risposta sarà questa:

#0 b(funzione b) called at [/var/www/debug_stack.php:4]

#1 a(funzione a) called at [/var/www/debug_stack.php:11

Potete anche "sopprimere" il debug dei parametri richiamando la funzione in questo modo:

debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);

In questo caso l'output sarà come il primo.

Tenete a mente questa funzione per i vostri debug!

Enjoy!