Dump di variabili per finalità di debug e vedere un log file in tempo reale con tail -f

Il debug è uno stress? Con questi piccoli accorgimenti non vi peserà più tanto.

Un mio collega di qualche tempo fa, l’ottimo G. Bove, si portava sempre dietro la sua cassetta degli attrezzi chiamata GBTools, una libreria di funzioni e snippet PHP in cui compariva anche la funzione dumpa (letto dampa), che effettuava un semplice dump su file di quello che gli passavi (variabili, oggetti, array, stringhe eccetera).

In suo omaggio, utilizzerò lo stesso nome per la mia funzione di log su file, ecco il codice che potrete scrivere dove vi pare, ma che vi consiglio di mettere in un file sempre richiamato nel vostro progetto.

<?php
if(!function_exists('dumpa')){
    function dumpa($var){
        $req_dump = print_r($var, TRUE);
        $fp = fopen(__DIR__ . '/my.log', 'a');
        fwrite($fp, $req_dump);
        fwrite($fp, "\n");
        fclose($fp);
    }
}

Questa funzione scriverà quello che gli verrà passato sul file my.log (nella directory in cui viene dichiarata la funzione). Ad onor del vero non ricordo come fosse strutturata quella da cui ho tratto ispirazione, ma alla fine fa il suo sporco lavoro.

Per poter leggere il file my.log, potete ovviamente aprirlo con un qualunque editor, o fare una cosa più figa e, soprattutto, più efficiente.

Se siete su ambiente Linux e (ancora) non conoscete il comando tail, provate a lanciare da bash quanto segue:

tail -f my.log

Lasciate la console aperta e affiancatela al vostro editor o browser per vedere i risultati del vostro debug in tempo reale.

Ho trovato, ma non testato, anche un modo per ottenere il comando tail su ambiente windows, fatemi sapere nei commenti se funziona.