aprender PHP logo

Nenhum produto encontrado nessa seleção.

Acredite se quiser, mas milhares de desenvolvedores novatos e veteranos não se importam com erros em seu código, principalmente erros de warning, noticedeprecated que podem não afetar o código se forem ocultos.

Isso acontece porque você pode facilmente modificar uma linha no seu arquivo php.ini e ocultar os erros do seu código.

Por exemplo:

display_errors = Off

Com apenas aquela linha acima no seu arquivo php.ini, codificar em PHP seria uma maravilha, pois agora você não verá erros tolos no seu código.

O problema é que os erros são importantes, e eles devem sim ser exibidos em algumas ocasiões.

Neste artigo você vai ver como evitar erros no seu código PHP com alguns truques simples (muito básicos). Além disso, também vou deixar dicas de quando é, ou não, necessário mostrar todos os erros.

Artigos interessantes sobre erros em PHP

Antes de continuar lendo, saiba que já falamos algumas vezes sobre erros em seu código PHP. Não deixe de ler os artigos dos links abaixo:

Leia principalmente se você não tem muita experiência no desenvolvimento com PHP.

Quando exibir erros em PHP?

Sempre que você estiver desenvolvendo qualquer coisa, normalmente estará fazendo isso em um ambiente que não está em produção, como o seu computador local. Neste caso, você DEVE EXIBIR TODOS OS ERROS.

Tais erros serão apresentados na tela, mostrando o erro, o arquivo, e a linha onde tal erro foi encontrado. O mínimo que você pode fazer é corrigir tal erro.

Se você não estiver exibindo erros, sua aplicação continuará funcionando mesmo com erros de warning, noticedeprecated. Por isso, é importante exibi-los antes de enviar os arquivos para o servidor em produção.

Por outro lado, você NUNCA, em hipótese alguma, deve exibir erros em servidores que estão em produção. Primeiro porque isso vai facilitar a vida de pessoas maliciosas que podem tentar burlar alguma brecha em seu sistema; segundo, porque isso é horrível para o usuário final.

Como exibir erros em PHP?

Você pode editar a linha display_errors do seu arquivo php.ini. Esta linha deverá estar com o valor “Off“, então basta modificar para “On“.

display_errors = On

Você também pode colocar o seguinte no seu código:

<?php
// Mostra todos os erros
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

Agora todos os erros serão exibidos.

Como ocultar erros em PHP?

Para ocultar, basta modificar os valores descritos acima para:

display_errors = Off

E:

<?php
// Oculta todos os erros
error_reporting(0);
ini_set("display_errors", 0);
?>

Assim todos os erros serão apresentados na tela.

Quando criar um log de erros em PHP

Você também pode criar um arquivo de log de erros em seu PHP. Isso pode ser útil em aplicações que estão em produção.

Neste caso, erros não serão exibidos na tela para o usuário final, mas salvos em um arquivo dentro do seu servidor. Posteriormente, você pode analisar esses arquivos de log para saber quais erros sua aplicação está gerando.

Para criar um arquivo de log de erros em PHP, modifique seu arquivo php.ini.

Primeiramente oculte os erros com:

display_errors = Off

Em seguida, altere as seguintes linhas:

log_errors = On

A linha acima ativa o log de erros.

Agora precisamos dizer ao PHP qual será o arquivo que vai gravar os erros, faça isso na seguinte linha:

error_log = php_errors.log

php_errors.log é o nome do arquivo que será gerado dentro da pasta da sua aplicação mostrando os erros que foram gerados pelo seu código PHP.

Conforme descrevi, isso pode ser utilizado em servidores que estão em produção, assim o usuário não verá nenhum erro na tela, eles serão todos salvos no arquivo que você escolheu.

Como evitar erros tolos em PHP?

Evitar erros no seu código é muito simples, vamos ver alguns casos simples onde erros meio bobos ocorrem.

Variáveis, arrays ou objetos não configurados

Se você tentar exibir ou manipular uma variável, array, chave do array, objeto ou a propriedade de um objeto que não existe, um erro será exibido na tela. Exemplo:

<?php
echo $a;
// Gera um erro porque a variável não existe.
// Notice: Undefined variable: a in Cursos/php/aula_1/index.php on line 2
?>

Para corrigir isso, basta utilizar isset ou ! empty em uma estrutura condicional. Veja:

<?php
// Nada é exibido, pois a variável não existe
echo isset( $a ) ? $a : null;

// Você também pode utilizar a forma longa
if ( isset( $a ) ) {
	echo $a;
}

// ! empty verifica se a variável não tem valor. Veja:
echo ! empty( $a ) ? $a : null;

// Ou a forma longa
if ( ! empty ( $a ) {
	echo $a;
}
?>

Funciona para qualquer variável, array, chave de array, objeto e chave de objeto. Veja:

<?php
// Um array
$array = array( 'Um valor qualquer na chave 0' );

// Verifica uma chave que não existe
if ( ! empty( $array['qualquer_coisa'] ) ) {
	// Nada é exibido
	echo $array['qualquer_coisa'];
}
?>

 Erros na escrita do código

Erros na escrita do código irão gerar um erro fatal. Por isso, você vai ter que ler a linha onde o erro ocorreu e corrigir, não existe a possibilidade de fazer eles passarem despercebidos.

Erros de funções obsoletas

Erros de funções obsoletas do PHP vão indicar a nova função que deve ser utilizada para substituir a que você está tentando usar. Você deve modificar toda a estrutura do seu código substituindo aquela função.

Fique atento a esses tipos de erro, principalmente em servidores que são atualizados com frequência. Em algum momento você pode perder toda a funcionalidade do seu código caso aquela função deixe de existir.

Concluindo

Para resumir, vamos a uma listinha:

  • Sempre exiba erros em servidores de desenvolvimento;
  • Nunca exiba erros em servidores em produção;
  • Faça log de erros em servidores em produção;
  • Sempre corrija qualquer tipo de erro no seu código;
  • Nunca utilize o operador de controle de erros @ para ocultar erros;
  • Fique ligado no site do PHP e nas atualizações da linguagem.

Acho que com isso você vai manter seu código sempre saudável, limpo e seguro.