Neste artigo você vai aprender a como fazer o PHP exibir erros, ou seja, se algo estiver errado no seu programa um erro será disparado

Como fazer o PHP exibir erros capa

Fala programador(a), beleza? Bora aprender mais sobre os erros do PHP!

Introdução

Desenvolver em PHP pode ser uma tarefa complexa, especialmente quando se lida com erros inesperados ou comportamentos estranhos em seu código.

A exibição de erros é uma ferramenta poderosa que permite identificar e corrigir esses problemas com eficácia. No entanto, muitos desenvolvedores ainda têm dúvidas sobre como fazê-lo corretamente.

Neste artigo, discutiremos detalhadamente como fazer o PHP exibir erros. A palavra-chave para este artigo é “Exibir erros PHP”.

Configurando o PHP para Exibir Erros

O PHP tem várias configurações que controlam como os erros são tratados.

Essas configurações podem ser definidas no arquivo php.ini ou diretamente em seu código PHP usando a função ini_set().

Para ativar a exibição de erros em seu script PHP, você pode adicionar as seguintes linhas no início de seu código:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Aqui está o que cada linha faz:

  • ini_set('display_errors', 1);: Esta linha força o PHP a exibir erros na saída padrão, que geralmente é a página web que está sendo gerada.
  • ini_set('display_startup_errors', 1);: Esta linha instrui o PHP a exibir erros que ocorrem durante o processo de inicialização do PHP. Esses são erros de baixo nível que podem ocorrer antes que seu script comece a ser executado.
  • error_reporting(E_ALL);: Esta linha define quais tipos de erros devem ser reportados. E_ALL é uma constante que faz com que todos os erros e advertências sejam reportados.

Entendendo os Níveis de Erros PHP

O PHP define várias constantes que permitem controlar quais tipos de erros são reportados.

A função error_reporting() permite que você defina o nível de erro que deseja reportar.

Aqui estão algumas das constantes mais importantes:

  • E_ALL: Reporta todos os erros e advertências.
  • E_ERROR: Reporta erros fatais em tempo de execução. Estes indicam erros que não podem ser recuperados e causam a terminação do script.
  • E_WARNING: Reporta advertências em tempo de execução. Estas são não-fatais e a execução do script normalmente continua.
  • E_PARSE: Reporta erros de análise. Estes são gerados por falhas no analisador enquanto o script PHP está sendo compilado.
  • E_NOTICE: Reporta avisos em tempo de execução. Normalmente indicam que o script encontrou algo que pode indicar um erro, mas que também pode acontecer durante a execução normal do script.

Você pode usar essas constantes individualmente ou combiná-las usando operadores bit a bit para reportar múltiplos níveis de erro.

Por exemplo, para reportar erros fatais, advertências e avisos, você pode usar:

error_reporting(E_ERROR | E_WARNING | E_NOTICE);

Exibindo Erros em Ambientes de Desenvolvimento e Produção

Embora a exibição de erros seja extremamente útil durante o desenvolvimento, ela pode ser um problema de segurança em um ambiente de produção.

Erros podem conter informações sensíveis que você não quer que sejam exibidas publicamente.

Por isso, é uma boa prática desativar a exibição de erros em ambientes de produção. Em vez disso, você deve logar erros em um arquivo que pode ser analisado posteriormente.

Você pode fazer isso definindo a diretiva log_errors no php.ini ou usando a função ini_set() em seu script:

ini_set('log_errors', 1);
ini_set('error_log', '/path/to/your/error.log');

Tratamento de Erros Personalizado em PHP

Além das configurações internas do PHP para lidar com erros, você também pode criar seu próprio manipulador de erros personalizado.

Isso pode ser útil para criar rotinas de tratamento de erros que são específicas para sua aplicação.

O PHP permite que você defina uma função personalizada que será chamada sempre que ocorrer um erro. Você pode fazer isso usando a função set_error_handler().

Aqui está um exemplo simples:

function custom_error_handler($errno, $errstr, $errfile, $errline) {
    echo "Erro ocorrido na linha $errline do arquivo $errfile: [Número $errno] $errstr";
}

set_error_handler("custom_error_handler");

Nesse exemplo, a função custom_error_handler() é definida para exibir informações sobre o erro.

A função set_error_handler() é então usada para dizer ao PHP para usar essa função sempre que ocorrer um erro.

Observe que o manipulador de erros personalizado não irá tratar erros fatais (como E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING e alguns E_STRICT).

Esses erros ainda são tratados pelo manipulador interno do PHP.

O uso de manipuladores de erros personalizados permite um maior controle sobre como os erros são tratados em sua aplicação.

Você pode usar essa técnica para logar erros de uma maneira personalizada, enviar notificações de erro por e-mail, ou até mesmo alterar a exibição de erros com base em critérios específicos.

A chave é entender como os erros são tratados no PHP e usar essas ferramentas para melhorar a qualidade e a robustez de seu código.

Quer aprender mais sobre programação? Conheça nosso canal no YouTube:

Conclusão

A capacidade de exibir erros é uma ferramenta vital para o desenvolvimento e depuração de aplicações PHP.

No entanto, é importante entender como configurá-la corretamente e estar ciente das implicações de segurança em ambientes de produção.

Com as práticas adequadas, você pode utilizar a exibição de erros para tornar seu processo de desenvolvimento mais eficiente e seguro.

Lembre-se, a depuração é uma parte essencial da programação, portanto, domine as ferramentas à sua disposição para criar aplicações mais robustas e confiáveis.

Está buscando em evoluir como Programador? Confira o nossos cursos de programação.

Inscrever-se
Notificar de
guest

1 Comentário
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários
Bruno Fischer Lopes

Se você tiver um codigo fonte de contar as visualizações com o php e sql, eu agradeceria muito.

Última edição 11 meses atrás por Bruno Fischer Lopes