Tratando erros em PHP

Luis Filipe Costa Carvalho

Depois que um sistema é produzido ele vai para o ambiente de testes e, nem sempre, todas as possibilidades são testadas e todas as falhas são descobertas. Alguns erros passam daqui, outros dali e o site vai para um ambiente real funcionando 90%. É muito difícil um site sair da produção sem nenhuma falha. Mas ai esta a questão. Se ele der erro em ambiente real, como ficar sabendo?

Provavelmente pensando nisso o pessoal da Zend implementou a função set_error_handler, que serve para tratar erros gerados em tempo de execução.

Por exemplo, se você usar uma variável que não existe ou dividir um número por zero esta função será chamada e você trata o erro da forma que achar melhor.

Nos sites que eu desenvolvo normalmente eu uso esta função para tratar os erros:

set_error_handler('trataErro');

function trataErro($msg,$errno,$errstr,$errfile,$errline) {
   $msg ="<pre>
              \nErro....: [$errno] - $errstr
              \nDate....: ".date("d/m/Y H:i:s") . "
              \nFile....: <b>$errfile</b> : <b>$errline</b>\n
          </pre>
          <h2>Roll Back: </h2$gt;";

       $trace = debug_backtrace(); //pegando o backtrace da execução
       foreach ($trace as $k=>$v) {
           if ($v['function'] == "trataErro") continue;
           $msg .=  "<ul><li>Função: <b style=\" color: green\">" . $v['function'] . "</b></li></ul>
                   <ol>File: " . $v['file'] ."</ol>
                   <ol>Linha: " . $v['line'] ."</ol>";

           if (isset($v['args'])) {
               $msg .=  "Argumentos:<ul>";
               foreach ($v['args'] as $a) {
                   $msg .=  "<li>$a</li>";
               }
               $msg .=  "</ul>";
           }
       }

    ob_start(); //ligando buffer de saida
    echo "<h1> Variáveis Globais </h1>";
    echo "<h2> _SERVER </h2>";
    echo "<pre>\n";print_r($_SERVER);echo"</pre>";
    echo "<h2> _POST </h2>";
    echo "<pre>\n";print_r($_POST);echo"</pre>";
    echo "<h2> _GET </h2>";
    echo "<pre>\n";print_r($_GET);echo"</pre>";
    $msg .= ob_get_contents(); //pegando o conteúdo do buffer de saida
    ob_end_clean(); //limpando o buffer de saida
    echo $msg;
    die; //Se algum erro existir ele aborta a execução do script
}

Depois de gerada a mensagem, se o site estiver em ambiente real ele mostra uma mensagem falando sobre o erro e pedindo desculpas e se estiver em ambiente de teste ele mostra o erro da forma como eu organizei na função.

O uso deste tipo de função é simples e trás grandes ganhos para os programadores que conseguem ter um feedback de como esta o código do site.

Aprovado!, Desenvolvimento, Interessante, Leu? Comente!, PHP 6 Comentários

Adesivinho interessante!

Luis Filipe Costa Carvalho

Olha só o adesivo que me mostraram hoje!
Adesivo Números binários

Confesso que tive um pouco de dificuldade em entender de “prima” e que um colega aqui do trabalho até me ajudou mas no final achei bem legal!

Quem quiser comprar o adesivo ele esta sendo vendido na TiShop por apenas R$ 2,00 =)
Link para o produto
Abraço.

Aprovado!, Assuntos Aleatórios, Interessante, Leu? Comente!, Show de Bola 7 Comentários

TV Interativa

Luis Filipe Costa Carvalho

Recebi de um amigo meu, fala Doidão, o link pelo orkut de um site chamado FIZTV. Pela Url eu acho que é da abril. Lá tem muita coisa engraçada divertida do tipo o video da Homenagem ao Tolí-Tolá. Lá o conteúdo é totalmente colaborativo e você pode mandar seus videos.

Ok, mas existem videos engraçados no Youtube também.

É, mas pelo que eu precebi todo o conteúdo é gerado pelos usuários, você não pode mandar um video que possa ter direitos autorais… Essa foi a grande jogada para que o site não possa ser processado por quebra de direitos autorais.

Dá para peder uma meia-horinha rindo dos videos =)

Aprovado!, Assuntos Aleatórios, Interessante, Show de Bola, Web 2.0 3 Comentários

Seria Flash?

Luis Filipe Costa Carvalho

Há algum tempo eu recebi um comentário em um post meu que falava sobre trabalho sob pressão de um leitor que simplesmente me impressionou com o site dele. Olhando o site achei, a princípio, que o site era feito em flash pela movimentação dos elementos, mas como sempre dou aquele clique com o botão esquerdo para conferir, descobri que não era. Aquele site cheio de movimentos era feito em mas sim Java script.

A finalidade principal do site é divulgar o trabalho e o currículo do William. Achei muito legal ele ter conseguido dar todo este movimento ao site usando apenas Java script. O charme do site é que o conteúdo é carregado e depois a div principal do site se redimensiona de forma que a div possa receber o texto. Outra coisa interessante é como ele manipula os botões do menu, só conferindo para ver mesmo.

Ao meu ver o layout do site pode ser melhorado dando assim mais vida ao mesmo. Mesmo sem usar cores chamativas o site cumpre totalmente a sua finalidade, divulgar o William!

Aprovado!, Assuntos Aleatórios, Desenvolvimento, Interessante, Show de Bola 4 Comentários

Salve o coelho!

Luis Filipe Costa Carvalho
Opere o coelho!

Hoje em dia a grande maioria dos clientes quer um site simples e, para não quebrar a rotina, ele tem que ser parecido com o do concorrente porque “a cor do burro do outro é sempre mais bonita do que a do meu burro”. Passeando pela internet eu encontrei o site da 10ml, nele você tem que operar o coelho de pelúcia. Ele é feito em flash e foge totalmente dos padrões de sites feitos hoje em dia. São coisas criativas que fazem diferença na internet e na hora do cliente comprar, ou indicar, o seu site em vez do outro, vale apena dar uma olhada. Coisas comuns qualquer um faz já usar a criatividade, criatividade mesmo, não é para qualquer um.

Aprovado!, Assuntos Aleatórios, Desenvolvimento, Interessante, Inutilidades 2 Comentários
Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress and Free WordPress Themes
RSS RSS dos Comentários Login