Crearea extensiilor Tracy
Tracy este un instrument excelent pentru depanarea aplicației dumneavoastră. Cu toate acestea, uneori aveți nevoie de mai multe informații decât vă oferă Tracy. Veți învăța despre:
- Crearea propriilor panouri Tracy Bar
- Crearea propriilor extensii Bluescreen
Puteți găsi extensii utile pentru Tracy pe Componette.
Extensii pentru bara Tracy
Crearea unei noi extensii pentru Tracy Bar este simplă. Trebuie să implementați interfața Tracy\IBarPanel
cu
metodele getTab()
și getPanel()
. Metodele trebuie să returneze codul HTML al unei file (eticheta mică
de pe Tracy Bar) și al unui panou (pop-up afișat după ce se face clic pe filă). Dacă getPanel()
nu returnează
nimic, va fi afișată doar fila. Dacă getTab()
nu returnează nimic, nu se afișează nimic și
getPanel()
nu va fi apelată.
class ExamplePanel implements Tracy\IBarPanel
{
public function getTab()
{
return /* ... */;
}
public function getPanel()
{
return /* ... */;
}
}
Înregistrare
Înscrierea se face prin apelarea Tracy\Bar::addPanel()
:
Tracy\Debugger::getBar()->addPanel(new ExamplePanel);
sau vă puteți înregistra pur și simplu panoul în configurația aplicației:
tracy:
bar:
- ExamplePanel
Tab Cod HTML
Ar trebui să arate ceva de genul acesta:
<span title="Explaining tooltip">
<svg>...</svg>
<span class="tracy-label">Title</span>
</span>
Imaginea trebuie să fie în format SVG. Dacă nu aveți nevoie de tooltip, puteți lăsa
<span>
afară.
Codul HTML al panoului
Ar trebui să arate ceva de genul acesta:
<h1>Title</h1>
<div class="tracy-inner">
<div class="tracy-inner-container">
... content ...
</div>
</div>
Titlul ar trebui să fie același cu cel din fila sau să conțină informații suplimentare.
O extensie poate fi înregistrată de mai multe ori, astfel încât se recomandă să nu se utilizeze atributul
id
pentru stilizare. Puteți utiliza clase, de preferință în
tracy-addons-<class-name>[-<optional>]
format. Atunci când creați CSS, este mai bine să utilizați
#tracy-debug .class
, deoarece o astfel de regulă are o prioritate mai mare decât resetarea.
Stiluri implicite
În panou, elementele <a>
, <table>
, <pre>
, <code>
au stiluri implicite. Pentru a crea o legătură pentru a ascunde sau afișa un alt element, conectați-le cu atributele
href
și id
și clasa tracy-toggle
.
<a href="#tracy-addons-className-{$counter}" class="tracy-toggle">Detail</a>
<div id="tracy-addons-className-{$counter}">...</div>
În cazul în care starea implicită este colapsată, adăugați clasa tracy-collapsed
la ambele elemente.
Utilizați un contor static pentru a preveni duplicarea ID-urilor pe o pagină.
Extensii Bluescreen
Puteți adăuga propriile vizualizări de excepție sau panouri, care vor apărea pe ecranul albastru.
Extensia este realizată astfel:
Tracy\Debugger::getBlueScreen()->addPanel(function (?Throwable $e) { // excepție capturată
return [
'tab' => '...Title...',
'panel' => '...content...',
];
});
Funcția este apelată de două ori, mai întâi excepția însăși este trecută în parametrul $e
, iar panoul
returnat este redat la începutul paginii. Dacă nu se returnează nimic, panoul nu este redat. Apoi este apelată cu parametrul
null
, iar panoul returnat este redat sub callstack. Dacă funcția returnează 'bottom' => true
în
matrice, panoul este redat chiar în partea de jos a paginii.