Ricette
Politica di sicurezza dei contenuti
Se il proprio sito utilizza i Criteri di sicurezza dei contenuti, è necessario aggiungere i tag
'nonce-<value>'
e 'strict-dynamic'
a script-src
perché Tracy funzioni correttamente.
Alcuni plugin di terze parti potrebbero richiedere direttive aggiuntive. Nonce non è supportato dalla direttiva
style-src
; se si usa questa direttiva, è necessario aggiungere 'unsafe-inline'
, ma questo dovrebbe
essere evitato in modalità di produzione.
Esempio di configurazione per Nette Framework:
Esempio in PHP puro:
Caricamento più veloce
L'integrazione di base è semplice, ma se nella pagina web sono presenti script di blocco lenti, questi possono rallentare il
caricamento di Tracy. La soluzione è inserire <?php Tracy\Debugger::renderLoader() ?>
nel template prima di
qualsiasi script:
Debug delle richieste AJAX
Tracy cattura automaticamente le richieste AJAX effettuate con jQuery o con l'API nativa fetch
. Queste richieste
vengono visualizzate come righe aggiuntive nella barra di Tracy, consentendo un debug AJAX facile e conveniente.
Se non si desidera catturare automaticamente le richieste AJAX, è possibile disabilitare questa funzione impostando la variabile JavaScript:
Per il monitoraggio manuale di specifiche richieste AJAX, aggiungete l'intestazione HTTP X-Tracy-Ajax
con il
valore restituito da Tracy.getAjaxHeader()
. Ecco un esempio di utilizzo con la funzione fetch
:
Questo approccio consente un debug selettivo delle richieste AJAX.
Memorizzazione dei dati
Tracy può visualizzare pannelli a barre e Bluescreen per le richieste AJAX e i reindirizzamenti. Tracy crea le proprie
sessioni, memorizza i dati nei propri file temporanei e utilizza il cookie tracy-session
.
Tracy può anche essere configurato per utilizzare una sessione PHP nativa, che viene avviata prima dell'attivazione di Tracy:
Nel caso in cui l'avvio di una sessione richieda un'inizializzazione più complessa, è possibile avviare Tracy immediatamente
(in modo che possa gestire eventuali errori), quindi inizializzare il gestore della sessione e infine informare Tracy che la
sessione è pronta per essere utilizzata utilizzando la funzione dispatch()
:
La funzione setSessionStorage()
esiste dalla versione 2.9, prima di allora Tracy utilizzava sempre la sessione
nativa di PHP.
Scrubber personalizzato
Scrubber è un filtro che impedisce la fuoriuscita di dati sensibili dai dump, come password o credenziali. Il filtro viene
richiamato per ogni elemento dell'array o dell'oggetto scaricato e restituisce true
se il valore è sensibile. In
questo caso, al posto del valore viene stampato *****
.
Logger personalizzato
Possiamo creare un logger personalizzato per registrare gli errori, le eccezioni non catturate e anche per essere chiamato da
Tracy\Debugger::log()
. Il logger implementa l'interfaccia Tracy\ILogger.
E poi lo attiviamo:
Se utilizziamo il Nette Framework completo, possiamo impostarlo nel file di configurazione di NEON:
Integrazione Monolog
Il pacchetto Tracy fornisce un adattatore PSR-3 che consente l'integrazione di monolog/monolog.
nginx
Se Tracy non funziona su nginx, probabilmente è mal configurato. Se c'è qualcosa come
cambiatelo in