Debug
1Introdução
O Temma oferece um plugin dedicado à depuração. Ele permite coletar dados sobre a requisição em execução, e acessá-los por meio de uma barra exibida na parte inferior das páginas (quando a visão Smarty é usada).
A barra de depuração dá acesso aos seguintes dados:
- Mensagens de log, para que você não precise abrir o arquivo log/temma.log.
- Variáveis de sessão, variáveis GET, variáveis POST, cookies e variáveis de template.
- Constantes: conteúdo da superglobal $_SERVER e variáveis de ambiente.
- Configuração.
- Telemetria, ou seja, a estrutura em árvore das chamadas de função e seus tempos de execução.
2Configuração
2.1Ativação
Para ativar o plugin, basta declará-lo como pré-plugin no arquivo de configuração etc/temma.php:
<?php
return [
'plugins' => [
'_pre' => [
'\Temma\Plugins\Debug'
]
]
];
Atenção!
Este plugin deve ser ativado apenas em uma estação de desenvolvimento, e nunca em servidores de produção.
Por isso, recomendamos fortemente adicioná-lo apenas ao arquivo de configuração etc/temma.dev.php, em vez de adicioná-lo ao arquivo principal etc/temma.php. Isso garantirá que o plugin só seja ativado em máquinas onde a variável ENVIRONMENT tenha o valor dev (veja a documentação sobre configuração por plataforma).
Use a chave _pre__prepend para que o plugin seja o primeiro da lista.
Exemplo de arquivo etc/temma.dev.php:
<?php
return [
'plugins' => [
'_pre__prepend' => [
'\Temma\Plugins\Debug'
]
]
];
Para sua informação, o plugin se registrará sozinho como pós-plugin. Mas você não deve adicioná-lo à configuração como pós-plugin, caso contrário ele será executado duas vezes, causando disfunções.
2.2Desativação de funcionalidades
Configurar o pré-plugin ativará todas as funções de depuração.
No entanto, é possível ativar ou desativar cada funcionalidade individualmente. Isso pode ser útil para economizar memória
durante a execução da requisição. Para isso, é preciso definir a configuração estendida x-debug:
<?php
return [
'x-debug' => [
// para desativar a exibição da barra de depuração,
// sem desativar a coleta de dados
'showBar' => false,
// para desativar a coleta e exibição das mensagens de log
'showLogs' => false,
// para desativar a exibição das variáveis
'showVariables' => false,
// para desativar a exibição das constantes ($_SERVER e ambiente)
'showConstants' => false,
// para desativar a exibição da configuração
'showConfig' => false,
// para desativar a telemetria
'showTelemetry' => false,
]
];
3Telemetria
A telemetria permite visualizar a estrutura em árvore das chamadas de função durante a execução da requisição, junto com o tempo de execução de cada função.
Esta ferramenta se baseia nas funções register_tick_function
e debug_backtrace do PHP. Infelizmente, essas funções
não conseguem garantir uma captura 100% precisa.
Portanto, a telemetria oferecida pelo Temma deve ser vista como uma ferramenta indicativa, mas não exaustiva.
Se você precisar de uma telemetria completa e precisa, pode recorrer a ferramentas como OpenTelemetry, Xdebug ou Blackfire.