Maior Controle de Erros em PHP
Agora com a classe é só fazer o include dela nos scripts onde você desejar que haja esse controle de erros.
Só lembrando que esta classe não substituirá um exercício completo de teste, e nem resolverá todos os problemas com os usuários, mas se usada corretamente, é uma boa ferramenta para resolução rápida de problemas, além de amenizar as reclamações dos usuários.
É interessante reforçar que se esta classe for usada no Linux tem que haver permissão de escrita no diretório do sistema.
Abaixo um script teste com um erro de include, com o arquivo marcelio.php, tente usar esse script como teste e verifique o efeito desta classe de erros.
É interessante testar também descomentando o header e ao mesmo tempo não utilizando a classe Erro. Você verá que o seu script, se na configuração estiverem ativados os Warnings, não executará o redirecionamento por causa da mensagem de erro.
Este artigo foi baseado no manual do PHP, portanto, mais informações é só acessar essa rica fonte, e que é traduzida por uma equipe muito boa.
É isso, espero que aproveitem, qualquer erro/sugestão mail-me.
Marcelio Leal
Links
Manual do PHP - http://br.php.net/manual/pt_BR/
Link - http://br.php.net/manual/pt_BR/function.set-error-handler.php
Grupo PHP Pai d’Égua – http://groups.yahoo.com/group/phppaidegua - http://sig.ufpa.br/phppaidegua
Minha Página do Curso de PHP – http://www.marcelioleal.cjb.net
Só lembrando que esta classe não substituirá um exercício completo de teste, e nem resolverá todos os problemas com os usuários, mas se usada corretamente, é uma boa ferramenta para resolução rápida de problemas, além de amenizar as reclamações dos usuários.
É interessante reforçar que se esta classe for usada no Linux tem que haver permissão de escrita no diretório do sistema.
Abaixo um script teste com um erro de include, com o arquivo marcelio.php, tente usar esse script como teste e verifique o efeito desta classe de erros.
<?php // arquivo teste.php // incluindo a classe Erro include_once dirname(__FILE__)."/class.Erro.php"; $teste ="Marcelio"; include_once("marcelio.php"); // header("location:http://www.papao.net"); ?>
É interessante testar também descomentando o header e ao mesmo tempo não utilizando a classe Erro. Você verá que o seu script, se na configuração estiverem ativados os Warnings, não executará o redirecionamento por causa da mensagem de erro.
Este artigo foi baseado no manual do PHP, portanto, mais informações é só acessar essa rica fonte, e que é traduzida por uma equipe muito boa.
É isso, espero que aproveitem, qualquer erro/sugestão mail-me.
Marcelio Leal
Links
Manual do PHP - http://br.php.net/manual/pt_BR/
Link - http://br.php.net/manual/pt_BR/function.set-error-handler.php
Grupo PHP Pai d’Égua – http://groups.yahoo.com/group/phppaidegua - http://sig.ufpa.br/phppaidegua
Minha Página do Curso de PHP – http://www.marcelioleal.cjb.net
muito bem comentado, confuso em algumas partes, mas nada que um olhar mais profundo não resolva. excelente ideia, classe muito util... valeus! :p
03/05/2004 7:37am
(~20 anos atrás)
Rodrigo,
Deve-se considerar que, se acontecer um erro fatal o script é interrompido imediatamente.
Portante erros claros de sintaxe e semântica que estão entre os erros fatais, como a chamada de uma função inexistente, interrompe a execução.
Para este tipo de erro, basta você executar uma vez o seu script pra verificar sua valida de e ou mesmo fazer um debug.
Outra coisa que deve ser clara, é que o título do artigo é "Maior controle de erros", o que é realmente possível implementando e incrementando esta classe, mas em nenhum momento, pelo menos até agora, teremos o controle total dos erros, erros fatais ainda são fatais.
Quem quiser utilizar esta classe baixe do link abaixo:
http://www.phpbrasil.com/scripts/script.php/id/1629
Espero ter respondido sua dúvida.
Att,
Marcelio Leal
Deve-se considerar que, se acontecer um erro fatal o script é interrompido imediatamente.
Portante erros claros de sintaxe e semântica que estão entre os erros fatais, como a chamada de uma função inexistente, interrompe a execução.
Para este tipo de erro, basta você executar uma vez o seu script pra verificar sua valida de e ou mesmo fazer um debug.
Outra coisa que deve ser clara, é que o título do artigo é "Maior controle de erros", o que é realmente possível implementando e incrementando esta classe, mas em nenhum momento, pelo menos até agora, teremos o controle total dos erros, erros fatais ainda são fatais.
Quem quiser utilizar esta classe baixe do link abaixo:
http://www.phpbrasil.com/scripts/script.php/id/1629
Espero ter respondido sua dúvida.
Att,
Marcelio Leal
29/04/2004 5:06pm
(~20 anos atrás)
Sinceridade, testei o seu script aqui e de começo tinha achado muuiiittttooo interessante, mas ele "não trata totalmente os erros", chama uma função inexistente dentro do arquivo que inclui a Classe de erro, ele simplesmente ignora, naum grava nada no log, tem algo a dizer a respeito disso??
--
// arquivo teste.php
// incluindo a classe Erro
//include_once dirname(__FILE__)."/erros.php";
$teste ="Marcelio";
//include_once("marcelio.php");
naumn_existe();
hader("location:http://www.papao.net");
--
--
// arquivo teste.php
// incluindo a classe Erro
//include_once dirname(__FILE__)."/erros.php";
$teste ="Marcelio";
//include_once("marcelio.php");
naumn_existe();
hader("location:http://www.papao.net");
--
29/04/2004 3:11pm
(~20 anos atrás)
Concordo com vc, a comunidade PHP está crescendo muito em termos de construção de sistemas, utilização de ferramentas, frameworks, etc...
Um exemplo bacana é a I semana de treinamento de software livre do governo federal, está tendo muita procura do PHP e PHP avançado...
O negócio agora é conseguir adotar o PHP nas instituições.
Uma frase pra se pensar:
"Quem disse que algo interpretado não é mais rápido que algo compilado?"
hehehe
Att,
Marcelio Leal
Um exemplo bacana é a I semana de treinamento de software livre do governo federal, está tendo muita procura do PHP e PHP avançado...
O negócio agora é conseguir adotar o PHP nas instituições.
Uma frase pra se pensar:
"Quem disse que algo interpretado não é mais rápido que algo compilado?"
hehehe
Att,
Marcelio Leal
29/04/2004 11:19am
(~20 anos atrás)
Muito bom o artigo, hoje, tecnologia não é nada sem qualidade.
O PHP é excelente para criarmos softs de qualidade, pq ele dá suporte a nossa imaginação, e isso é muito bom.
Obrigado Marcelio.
O PHP é excelente para criarmos softs de qualidade, pq ele dá suporte a nossa imaginação, e isso é muito bom.
Obrigado Marcelio.
29/04/2004 7:23am
(~20 anos atrás)
Muito bom Marcelio, estava procurando um script assim.
Parabéns,
Fabrício
Parabéns,
Fabrício
28/04/2004 2:38pm
(~20 anos atrás)
Fala Marcelo,
Cara... Recentemente eu tinha lido no site oficial PHP.net sobre um curso/palestra ou algo do genero que seria realizado e por acaso topei com o site de um dos ministrantes.
Pois bem... La tinha um artigo do tipo: "Voce se considera um Guru/Mago em PHP?", enfim, o artigo tinha as topicalizacoes:
- Reciclacao de codigos
- Programacao com orientacao a objetos/hierarquia e herancas
- Identacao e padronizacao de documentacao
- Tratamento de erros (Seu artigo)
- Abstracao
|- Banco de dados
|- Estruturacao de dados dinamicos (por exemplo relacao cookie/sessao)
Enfim... Se olharmos os primeiros artigos publicados aqui no PHPBrasil e compararmos com os mais recentes veremos como a comunidade evoluiu. E evolui em quase todos os quesitos que as outras tecnologias/empresas de tecnologia presam...
Alguem ainda acha que nao queimaram a lingua quem falava que a comunidade Java estava a milhares de anos luz na frente das outras comunidades de desenvolvimento?
kekeke
Vlw pelo artigo
Abracos,
Ragen
Cara... Recentemente eu tinha lido no site oficial PHP.net sobre um curso/palestra ou algo do genero que seria realizado e por acaso topei com o site de um dos ministrantes.
Pois bem... La tinha um artigo do tipo: "Voce se considera um Guru/Mago em PHP?", enfim, o artigo tinha as topicalizacoes:
- Reciclacao de codigos
- Programacao com orientacao a objetos/hierarquia e herancas
- Identacao e padronizacao de documentacao
- Tratamento de erros (Seu artigo)
- Abstracao
|- Banco de dados
|- Estruturacao de dados dinamicos (por exemplo relacao cookie/sessao)
Enfim... Se olharmos os primeiros artigos publicados aqui no PHPBrasil e compararmos com os mais recentes veremos como a comunidade evoluiu. E evolui em quase todos os quesitos que as outras tecnologias/empresas de tecnologia presam...
Alguem ainda acha que nao queimaram a lingua quem falava que a comunidade Java estava a milhares de anos luz na frente das outras comunidades de desenvolvimento?
kekeke
Vlw pelo artigo
Abracos,
Ragen
28/04/2004 1:09pm
(~20 anos atrás)