Criando Extensões Tracy
Tracy é uma ótima ferramenta para depuração de sua aplicação. Entretanto, às vezes você precisa de mais informações do que Tracy oferece. Você aprenderá sobre isso:
- Criando seus próprios painéis Tracy Bar
- Criando suas próprias extensões Bluescreen
Você pode encontrar extensões úteis para Tracy em Componette.
Extensões de Barras Tracy
Criar uma nova extensão para Tracy Bar é simples. Você precisa implementar Tracy\IBarPanel
interface com os
métodos getTab()
e getPanel()
. Os métodos devem retornar o código HTML de uma aba (pequena etiqueta
na Tracy Bar) e um painel (pop-up exibido após clicar na aba). Se getPanel()
não retorna nada, somente a aba será
exibida. Se getTab()
não retorna nada, nada será exibido e getPanel()
não será chamado.
class ExamplePanel implements Tracy\IBarPanel
{
public function getTab()
{
return /* ... */;
}
public function getPanel()
{
return /* ... */;
}
}
Registro
O registro é feito ligando para Tracy\Bar::addPanel()
:
Tracy\Debugger::getBar()->addPanel(new ExamplePanel);
ou você pode simplesmente registrar seu painel na configuração da aplicação:
tracy:
bar:
- ExamplePanel
Tab Código HTML
Deve ser parecido com isto:
<span title="Explaining tooltip">
<svg>...</svg>
<span class="tracy-label">Title</span>
</span>
A imagem deve estar no formato SVG. Se você não precisa de ponta de ferramenta, você pode deixar
<span>
fora.
Código HTML do Painel
Deve ser parecido com isto:
<h1>Title</h1>
<div class="tracy-inner">
<div class="tracy-inner-container">
... content ...
</div>
</div>
O título deve ser o mesmo que na guia ou conter informações adicionais.
Uma extensão pode ser registrada várias vezes, por isso é recomendado não utilizar o atributo id
para a
criação de estilos. Você pode usar classes, de preferência em tracy-addons-<class-name>[-<optional>]
formato. Ao criar o CSS, é melhor usar #tracy-debug .class
, pois tal regra tem maior prioridade do que
o reset.
Estilos padrão
No painel, elementos <a>
, <table>
, <pre>
, <code>
têm estilos padrão. Para criar um link para esconder ou exibir outro elemento, conecte-os com href
e
id
atributos e classe tracy-toggle
.
<a href="#tracy-addons-className-{$counter}" class="tracy-toggle">Detail</a>
<div id="tracy-addons-className-{$counter}">...</div>
Se o estado padrão for desmoronado, adicione a classe tracy-collapsed
a ambos os elementos.
Use um contador estático para evitar duplicatas de identificação em uma página.
Extensões de tela Bluescreen
Você pode adicionar suas próprias visualizações de exceção ou painéis, que aparecerão na tela azul.
A extensão é feita desta forma:
Tracy\Debugger::getBlueScreen()->addPanel(function (?Throwable $e) { // catched exception
return [
'tab' => '...Título...',
'panel' => '...conteúdo...',
];
});
A função é chamada duas vezes, primeiro a própria exceção é passada no parâmetro $e
e o painel retornado
é apresentado no início da página. Se nada for retornado, o painel não é renderizado. Em seguida é chamado com
o parâmetro null
e o painel retornado é renderizado abaixo do indicativo. Se a função retorna
'bottom' => true
no array, o painel é renderizado na parte inferior.