Português Português English English

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.

BackTrace 0.0.1

exemplo BackTrace

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.

Posted in Development, PHP

4 Comments so far

Subscribe to Comments RSS or TrackBack 'BackTrace 0.0.1'.

  1. Oct 4, 2007 at 7:59 pm

    Gabriel says,

    Massa, garoto… vou fuçar nela aqui!
    Bjundas

  2. 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….

  3. 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

  4. 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 [...]

Leave a Comment

Please be polite and on topic. Your e-mail will never be published.

BrasilMato GrossoRondôniaDistrito Federal