Creación de extensiones de Tracy
Tracy es una gran herramienta para depurar tu aplicación. Sin embargo, a veces necesitas más información de la que Tracy ofrece. Aprenderás sobre:
- Crear tus propios paneles Tracy Bar
- Crear tus propias extensiones Bluescreen
Puedes encontrar extensiones útiles para Tracy en Componette.
Extensiones de la barra Tracy
Crear una nueva extensión para Tracy Bar es sencillo. Necesita implementar la interfaz Tracy\IBarPanel
con los
métodos getTab()
y getPanel()
. Los métodos deben devolver el código HTML de una pestaña (pequeña
etiqueta en Tracy Bar) y un panel (ventana emergente que se muestra tras hacer clic en la pestaña). Si getPanel()
no
devuelve nada, sólo se mostrará la pestaña. Si getTab()
no devuelve nada, no se mostrará nada y no se llamará a
getPanel()
.
Registro
La inscripción se realiza llamando a Tracy\Bar::addPanel()
:
o simplemente puede registrar su panel en la configuración de la aplicación:
Pestaña Código HTML
Debería tener este aspecto:
La imagen debe estar en formato SVG. Si no necesitas tooltip, puedes dejar <span>
.
Código HTML del panel
Debería tener este aspecto:
El título debe ser el mismo que en la pestaña o contener información adicional.
Una extensión puede registrarse varias veces, por lo que se recomienda no utilizar el atributo id
para el estilo.
Puede utilizar clases, preferiblemente en tracy-addons-<class-name>[-<optional>]
formato. Al crear CSS,
es mejor utilizar #tracy-debug .class
, porque dicha regla tiene mayor prioridad que reset.
Estilos por defecto
En el panel, elementos <a>
, <table>
, <pre>
, <code>
tienen estilos predeterminados. Para crear un enlace para ocultar o mostrar otro elemento, conéctelos con los atributos
href
y id
y la clase tracy-toggle
.
Si el estado por defecto es colapsado, añada la clase tracy-collapsed
a ambos elementos.
Utilice un contador estático para evitar la duplicación de ID en una página.
Extensiones Bluescreen
Puede añadir sus propias visualizaciones de excepciones o paneles, que aparecerán en el bluescreen.
La extensión se hace así:
La función se llama dos veces, primero se pasa la propia excepción en el parámetro $e
y el panel devuelto se
renderiza al principio de la página. Si no se devuelve nada, el panel no se renderiza. Luego se llama con el parámetro
null
y el panel devuelto se renderiza debajo de la pila de llamadas. Si la función devuelve
'bottom' => true
en el array, el panel se renderiza en la parte inferior.