Recetas
Política de seguridad de contenidos
Si su sitio utiliza la Política de Seguridad de Contenidos, tendrá que añadir 'nonce-<value>'
y
'strict-dynamic'
a script-src
para que Tracy funcione correctamente. Algunos plugins de terceros pueden
requerir directivas adicionales. Nonce no está soportado en la directiva style-src
, si usa esta directiva
necesitará añadir 'unsafe-inline'
, pero esto debería evitarse en modo de producción.
Ejemplo de configuración para Nette Framework:
Ejemplo en PHP puro:
Carga más rápida
La integración básica es sencilla, sin embargo si tienes scripts lentos de bloqueo en la página web, pueden ralentizar la
carga de Tracy. La solución es colocar <?php Tracy\Debugger::renderLoader() ?>
en tu plantilla antes de
cualquier script:
Depuración de peticiones AJAX
Tracy captura automáticamente las peticiones AJAX realizadas mediante jQuery o la API nativa fetch
. Estas
peticiones se muestran como filas adicionales en la barra de Tracy, permitiendo una depuración AJAX fácil y cómoda.
Si no desea capturar automáticamente las solicitudes AJAX, puede desactivar esta función configurando la variable JavaScript:
Para la monitorización manual de peticiones AJAX específicas, añada la cabecera HTTP X-Tracy-Ajax
con el valor
devuelto por Tracy.getAjaxHeader()
. Aquí tiene un ejemplo de uso con la función fetch
:
Este enfoque permite la depuración selectiva de peticiones AJAX.
Almacenamiento de datos
Tracy puede mostrar paneles de barras Tracy y Bluescreens para peticiones AJAX y redirecciones. Tracy crea sus propias
sesiones, almacena datos en sus propios archivos temporales y utiliza una cookie tracy-session
.
Tracy también puede configurarse para usar una sesión nativa PHP, que se inicia antes de que Tracy se active:
En caso de que iniciar una sesión requiera una inicialización más compleja, se puede iniciar Tracy inmediatamente (para que
pueda manejar cualquier error que se produzca) y después inicializar el manejador de sesión y finalmente informar a Tracy de que
la sesión está lista para ser usada usando la función dispatch()
:
La función setSessionStorage()
existe desde la versión 2.9, antes de eso Tracy siempre usaba la sesión nativa
de PHP.
Depurador personalizado
Scrubber es un filtro que evita que se filtren datos sensibles de los volcados, como contraseñas o credenciales. El filtro es
llamado para cada elemento del array u objeto volcado y devuelve true
si el valor es sensible. En este caso, se
imprime *****
en lugar del valor.
Registrador personalizado
Podemos crear un logger personalizado para registrar errores, excepciones no capturadas, y también ser llamado por
Tracy\Debugger::log()
. Logger implementa la interfaz Tracy\ILogger.
Y luego lo activamos:
Si usamos el Nette Framework completo, podemos configurarlo en el archivo de configuración de NEON:
Integración Monolog
El paquete Tracy proporciona un adaptador PSR-3 que permite la integración de monolog/monolog.
nginx
Si Tracy no funciona en nginx, probablemente esté mal configurado. Si hay algo como
cámbielo por