Quante volte hai dovuto debuggare query, array o addirittura le temutissime chiamate AJAX?
Quante volte per fare tutto questo hai messo die() ed echo sparsi per tutto il codice?
Sono situazioni che tutti i programmatori hanno affrontato nel corso della loro carriera, tanto da spingere alcuni di loro a creare degli strumenti appositi come la Laravel Debugbar, estensione del collaudato pacchetto: PHP Debugbar.
Per noi ormai si tratta di un must-have tanto da essere presente in tutti i nostri progetti Laravel, ma vediamo meglio come funziona.
Come funziona Lavarel Debugbar
Installarlo è semplicissimo, basta eseguire questa stringa da riga di comando all’interno del proprio progetto: composer require barryvdh/laravel-debugbar –dev
Laravel dalla versione 5.5 usa l’auto-discover dei nuovi pacchetti, se usate una versione più vecchia, sarà necessario registrare il ServiceProvider e la Facade. Per farlo è sufficiente copiare queste due righe all’interno del file config/app.php
BarryvdhDebugbarServiceProvider::class,
‘Debugbar’ => BarryvdhDebugbarFacade::class, (Questa servirà per utilizzare tutte le funzionalità del pacchetto)
Per un controllo più completo è consigliato esportare anche il file di configurazione ed anche qui Laravel ha la soluzione già pronta:
php artisan vendor:publish
Questo comando esporterà il file di configurazione all’interno della cartella config.
Una volta installato vedremo questo nuovo elemento in fondo alla pagina web
(Nello screenshot è selezionato il tab delle query)
Funzionalità Laravel Debugbar
Debug chiamate AJAX
Per vedere le chiamate AJAX è sufficiente cliccare sull’icona della cartella, in alto a destra (terza icona da destra), a questo punto si aprirà una modal con lo storico di tutte le richieste http.
A questo punto per analizzare ciò che è avvenuto in una determinata richiesta è sufficiente cliccare su una URL e la Debugbar farà la sua magia.
Facade
In fase di installazione abbiamo registrato anche la Facade del pacchetto, vediamo come usarla:
use Debugbar;
Debugbar::info($object);
Debugbar::error(‘Error!’);
Debugbar::warning(‘Watch out…’);
Debugbar::addMessage(‘Another message’, ‘mylabel’);
I livelli di log sono quelli definiti dallo standard PSR-3 (debug, info, notice, warning, error, critical, alert, emergency)
Catturare le eccezioni
try{
throw new Exception(‘eccezione’);
}catch (Exception $e){
Debugbar::addThrowable($e);
}
Debuggare array e variabili
Debugbar::info( [1,2,3] );
Abilita e disabilita runtime
È possibile abilitare e disabilitare le funzionalità runtime:
Debugbar::enable();
Debugbar::disable();
in produzione solitamente è disabilitato, però tramite un middleware è possibile abilitarlo, per esempio solo per le richieste provenienti da alcuni indirizzi IP:
if( Request::ip() == ‘192.168.1.1’ ){
Debugbar::enable();
}
Conclusioni
Queste sono solo alcune delle funzionalità messe a disposizione dal pacchetto, per approfondire il funzionamento la cosa migliore è consultare la documentazione http://phpdebugbar.com/docs/ oppure installarlo e provarlo.
Una volta provato, non potrete più farne a meno.