Ustvarjanje razširitev Tracy
Tracy je odlično orodje za odpravljanje napak v aplikaciji. Vendar včasih potrebujete več informacij, kot jih ponuja Tracy. Spoznali boste:
- ustvarjanju lastnih plošč Tracy Bar
- ustvarjanju lastnih razširitev Bluescreen
Uporabne razširitve za Tracy lahko najdete na Componette.
Tracy Bar Extensions
Ustvarjanje nove razširitve za Tracy Bar je preprosto. Implementirati morate vmesnik Tracy\IBarPanel
z metodama
getTab()
in getPanel()
. Metodi morata vrniti kodo HTML zavihka (majhna nalepka v Tracy Baru) in
plošče (pojavno okno, ki se prikaže po kliku na zavihek). Če getPanel()
ne vrne ničesar, bo prikazan samo
zavihek. Če getTab()
ne vrne ničesar, se ne prikaže nič in getPanel()
se ne pokliče.
class ExamplePanel implements Tracy\IBarPanel
{
public function getTab()
{
return /* ... */;
}
public function getPanel()
{
return /* ... */;
}
}
Registracija
Registracija se opravi s klicem na Tracy\Bar::addPanel()
:
Tracy\Debugger::getBar()->addPanel(new ExamplePanel);
ali pa lahko ploščo preprosto registrirate v konfiguraciji aplikacije:
tracy:
bar:
- ExamplePanel
Koda HTML zavihka
Izgledati mora nekako takole:
<span title="Explaining tooltip">
<svg>...</svg>
<span class="tracy-label">Title</span>
</span>
Slika mora biti v formatu SVG. Če ne potrebujete namigov, lahko pustite <span>
izpustite.
Koda HTML plošče
Izgledati mora nekako takole:
<h1>Title</h1>
<div class="tracy-inner">
<div class="tracy-inner-container">
... content ...
</div>
</div>
Naslov mora biti enak kot v zavihku ali pa mora vsebovati dodatne informacije.
Ena razširitev je lahko registrirana večkrat, zato je priporočljivo, da za oblikovanje ne uporabljate atributa
id
. Uporabite lahko razrede, po možnosti v tracy-addons-<class-name>[-<optional>]
obliki.
Pri ustvarjanju CSS je bolje uporabiti #tracy-debug .class
, saj ima takšno pravilo večjo prednost kot reset.
Privzeti slogi
Na plošči so elementi <a>
, <table>
, <pre>
, <code>
imajo privzete sloge. Če želite ustvariti povezavo za skrivanje ali prikaz drugega elementa, jih povežite z atributoma
href
in id
ter razredom tracy-toggle
.
<a href="#tracy-addons-className-{$counter}" class="tracy-toggle">Detail</a>
<div id="tracy-addons-className-{$counter}">...</div>
Če je privzeto stanje zloženo, obema elementoma dodajte razred tracy-collapsed
.
Uporabite statični števec, da preprečite podvajanje ID-jev na eni strani.
Razširitve Bluescreen
Dodate lahko lastne vizualizacije izjem ali plošče, ki bodo prikazane na zaslonu Bluescreen.
Razširitev je narejena na naslednji način:
Tracy\Debugger::getBlueScreen()->addPanel(function (?Throwable $e) { // ujeta izjema
return [
'tab' => '...Title...',
'panel' => '...content...',
];
});
Funkcija se pokliče dvakrat, najprej se v parametru $e
posreduje sama izjema, vrnjena plošča pa se prikaže na
začetku strani. Če se ne vrne nič, se plošča ne prikaže. Nato se pokliče s parametrom null
in vrnjena
plošča se izriše pod skladovnico klicev. Če funkcija vrne 'bottom' => true
v polju, se plošča prikaže na
samem dnu.