Tracy-Erweiterungen erstellen
Tracy ist ein hervorragendes Werkzeug zur Fehlersuche in Ihrer Anwendung. Manchmal benötigen Sie jedoch mehr Informationen als Tracy bietet. Sie werden mehr darüber erfahren:
- Deine eigenen Tracy Bar Panels zu erstellen
- Erstellen Ihrer eigenen Bluescreen-Erweiterungen
Nützliche Erweiterungen für Tracy finden Sie auf Componette.
Tracy Bar Erweiterungen
Das Erstellen einer neuen Erweiterung für Tracy Bar ist einfach. Sie müssen die Schnittstelle Tracy\IBarPanel
mit den Methoden getTab()
und getPanel()
implementieren. Die Methoden müssen den HTML-Code eines Tabs
(kleines Etikett auf der Tracy Bar) und eines Panels (Pop-up, das nach dem Anklicken des Tabs angezeigt wird) zurückgeben. Wenn
getPanel()
nichts zurückgibt, wird nur die Registerkarte angezeigt. Wenn getTab()
nichts zurückgibt,
wird nichts angezeigt und getPanel()
wird nicht aufgerufen.
class ExamplePanel implements Tracy\IBarPanel
{
public function getTab()
{
return /* ... */;
}
public function getPanel()
{
return /* ... */;
}
}
Registrierung
Die Anmeldung erfolgt unter Tracy\Bar::addPanel()
:
Tracy\Debugger::getBar()->addPanel(new ExamplePanel);
oder Sie können Ihr Panel einfach in der Anwendungskonfiguration registrieren:
tracy:
bar:
- ExamplePanel
Registerkarte HTML-Code
Sollte in etwa so aussehen:
<span title="Explaining tooltip">
<svg>...</svg>
<span class="tracy-label">Title</span>
</span>
Das Bild sollte das Format SVG haben. Wenn Sie keinen Tooltip benötigen, können Sie <span>
weglassen.
HTML-Code für das Panel
Sollte in etwa so aussehen:
<h1>Title</h1>
<div class="tracy-inner">
<div class="tracy-inner-container">
... content ...
</div>
</div>
Der Titel sollte entweder derselbe sein wie in der Registerkarte oder zusätzliche Informationen enthalten.
Eine Erweiterung kann mehrfach registriert werden, daher wird empfohlen, das Attribut id
nicht für das Styling zu
verwenden. Sie können Klassen verwenden, vorzugsweise im tracy-addons-<class-name>[-<optional>]
Format.
Bei der Erstellung von CSS ist es besser, #tracy-debug .class
zu verwenden, da diese Regel eine höhere Priorität
als Reset hat.
Standard-Stile
Im Panel werden die Elemente <a>
, <table>
, <pre>
,
<code>
über Standardstile. Um einen Link zum Ausblenden oder Anzeigen eines anderen Elements zu erstellen,
verbinden Sie sie mit den Attributen href
und id
und der Klasse tracy-toggle
.
<a href="#tracy-addons-className-{$counter}" class="tracy-toggle">Detail</a>
<div id="tracy-addons-className-{$counter}">...</div>
Wenn der Standardzustand eingeklappt ist, fügen Sie die Klasse tracy-collapsed
zu beiden Elementen hinzu.
Verwenden Sie einen statischen Zähler, um doppelte IDs auf einer Seite zu vermeiden.
Bluescreen-Erweiterungen
Sie können Ihre eigenen Ausnahmevisualisierungen oder Panels hinzufügen, die auf dem Bluescreen erscheinen.
Die Erweiterung ist wie folgt aufgebaut:
Tracy\Debugger::getBlueScreen()->addPanel(function (?Throwable $e) { // catched exception
return [
'tab' => '...Title...',
'panel' => '...content...',
];
});
Die Funktion wird zweimal aufgerufen, zuerst wird die Ausnahme selbst im Parameter $e
übergeben und das
zurückgegebene Panel wird am Anfang der Seite gerendert. Wenn nichts zurückgegeben wird, wird das Panel nicht gerendert. Dann
wird die Funktion mit dem Parameter null
aufgerufen und das zurückgegebene Panel wird unterhalb des Aufrufstapels
gerendert. Wenn die Funktion 'bottom' => true
im Array zurückgibt, wird das Panel ganz unten gerendert.