BackTrace 0.0.1
Há muito tempo fiquei devendo a publicação de uma biblioteca que exibe o rastro de uma execução de um script PHP. Fiz uma biblioteca que manipula um rastro e faz algumas coisa a mais que a chamada de um var_dump() com o parâmetro debug_backtrace().
O que essa biblioteca faz? De acordo com a documentação da classe principal: “Manipula e fornece acesso aos dados de uma determinada pilha de execução. Por meio de métodos é possível caminhar entre os níveis e capturar informações respectivas a cada um deles.”
E o que eu programador ganho com isso? Essa biblioteca tem me ajudado muito na correção de erros. Quem não utiliza debug para programar em PHP vai gostar bastante. Quem utiliza também, pois ele não serve apenas para exibir um erro durante a fase de construção de um projeto, ele pode ser utilizado no log ou envio de e-mail para facilitar a detecção e correção de erros. Conforme exemplo exibido o trace exibe parte do código (configurável) e destaca a linha em que ocorre mudança de nível no rastro.
Como utilizar?
Primeiro é necessário carregar as classes:
include_once “backtrace/BackTrace.php”;
include_once “backtrace/BackTraceExplain.php”;
Depois utilizar onde deseja exibir o rastro:
$oTrace = new BackTrace();
echo $oTrace->explain();
A classe BackTrace tem um monte de metódos interessantes, mas o explain é o mais legal. Pra quem for curioso dê uma olhadinha na classe BackTraceExplain, que é a classe utilizada por esse método.
Outra possibilidade de utilização dessa biblioteca é em uma função que faz dump de qualquer coisa. Enfim, as possibilidade são diversas. Abaixo o link para download da biblioteca.
A imagem ao lado ilustra um exemplo do resultado da utilização integrada com outra biblioteca de manipulação de erro em um site com o Zend Framework. Perceba que o exemplo é a exibição de um notice.
Qualquer bug, sugestão ou reclamação, por favor, serão bem-vindos neste tópico.
Português
English



Oct 4, 2007 at 7:59 pm
Gabriel says,
Massa, garoto… vou fuçar nela aqui!
Bjundas
Feb 22, 2008 at 7:02 am
blaine says,
Vei….
eu tentei fazer um try catch usando a parada
$oTrace->perform( $objException->getTrace() );
mas ele nao aceita nem exception nem array trace entao depois implementa isso ae… para eu poder seguir excecoes mais facil =DDDDD
Value fi….
Feb 29, 2008 at 3:26 am
Renan de Lima says,
blz, solicitação aceita!
o array trace de uma exception tem formato diferente do debug_backtrace()
veja mais: http://bugs.php.net/bug.php?id=31687
desde a versão 5.0.3 foi mudado
vou estudar o formato exato desse método e ver o que pode ser feito
Mar 7, 2008 at 2:52 pm
Renê de Lima - » Controle de Erro says,
[...] ano passado, eu e meu irmão publicamos um componente que mostra informações sobre a pilha de execução de forma mais [...]