Aqui está uma breve explicação das
diretivas de configuração.
-
error_reporting
integer
-
Define o nível de relatório de erros. O parâmetro é ou um inteiro
representando um campo de bits ou constantes nomeadas. Os níveis e
constantes de error_reporting são descritos em
Constantes Pré-definidas e no
arquivo php.ini. Para definir em tempo de execução, use a função
error_reporting(). Veja também a diretiva
display_errors.
A partir do PHP 5.3, o valor padrão
é E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
. Esta configuração não mostra os níveis
de erro E_NOTICE
, E_STRICT
e E_DEPRECATED
. Você pode querer
mostrá-los durante o desenvolvimento.
Antes do PHP 5.3.0, o valor padrão
é E_ALL
&
~E_NOTICE
&
~E_STRICT
.
No PHP 4, o valor padrão é E_ALL
& ~E_NOTICE
.
Nota:
Habilitar o E_NOTICE
durante o desenvolvimento
traz alguns benefícios. Para fins de depuração: as mensagens NOTICE irão
avisá-lo sobre possíveis erros em seu código. Por exemplo, o uso de
valores não atribuídos é avisado. É extremamente útil para encontrar erros
de digitação e para economizar tempo de depuração. As mensagens NOTICE
irão avisá-lo sobre estilo ruim. Por exemplo, $arr[item]
é melhor ser escrito como $arr['item']
já que o PHP
tenta tratar "item"
como constante. Se não for uma
constante, o PHP assume que é uma string para o índice do array.
Nota:
No PHP 5, um novo nível de erro E_STRICT
está disponível.
Antes do PHP 5.4.0, E_STRICT
não estava incluído no
E_ALL
, portanto, você teria que habilitar explicitamente esse tipo de
nível de erro no PHP < 5.4.0. Habilitar o E_STRICT
durante o desenvolvimento
traz alguns benefícios. As mensagens STRICT fornecem sugestões que podem
ajudar a garantir a melhor interoperabilidade e compatibilidade futura do
seu código. Essas mensagens podem incluir coisas como chamar estaticamente
métodos não-estáticos, definir propriedades em uma definição de classe
compatível enquanto estiver definido em um trait usado e, antes do PHP 5.3,
alguns recursos descontinuados emitiriam erros E_STRICT
,
como atribuir objetos por referência na instanciação.
Nota:
Constantes do PHP fora do PHP
Usar constantes do PHP fora do PHP, como no httpd.conf,
não terão significado algum, portanto, nesses casos, os valores integer
são necessários. E, como níveis de erro serão adicionados ao longo do tempo,
o valor máximo (para E_ALL
) provavelmente será alterado.
Portanto, no lugar de E_ALL
, considere usar um valor
maior para cobrir todos os campos de bits tanto os de hoje como os do futuro,
um valor numérico como 2147483647
(inclui todos os
erros, não apenas E_ALL
).
-
display_errors
string
-
Isso determina se os erros devem ser impressos na tela
como parte da saída ou se devem ser ocultados do usuário.
O valor "stderr"
envia os erros para stderr
em vez de stdout
. O valor está disponível a partir do
PHP 5.2.4. Em versões anteriores, essa diretiva era do tipo boolean.
Nota:
Este é um recurso para dar suporte ao seu desenvolvimento e nunca deve ser
usado em sistemas de produção (por exemplo, sistemas conectados à internet).
Nota:
Embora display_errors possa ser configurado em tempo de execução (com ini_set()),
ele não terá nenhum efeito se o script tiver erros fatais.
Isso ocorre porque a ação em tempo de execução desejada não é executada.
-
display_startup_errors
boolean
-
Mesmo quando display_errors está ativado, erros que ocorrem durante a
sequência de inicialização do PHP não são exibidos. É altamente
recomendável manter display_startup_errors desativado, exceto para depuração.
-
log_errors
boolean
-
Informa se as mensagens de erro de script devem ser registradas no log de
erros do servidor ou no error_log.
Essa opção é, portanto, específica do servidor.
Nota:
É altamente recomendável usar o registro de erros em vez de
exibir erros em sites de produção.
-
log_errors_max_len
integer
-
Define o comprimento máximo de log_errors em bytes. Em
error_log, informações sobre a
fonte são adicionadas. O padrão é 1024 e 0 não aplica um
comprimento máximo.
Esse tamanho é aplicado a erros registrados, erros exibidos e também a
$php_errormsg, mas não à funções chamadas
explicitamente como error_log().
Quando um int é usado, o
valor é medido em bytes. A notação abreviada, como descrita
nesta FAQ, também pode ser usada.
-
ignore_repeated_errors
boolean
-
Não registrar mensagens repetidas. Erros repetidos devem ocorrer no mesmo
arquivo e na mesma linha, a menos que
ignore_repeated_source
seja definido como verdadeiro.
-
ignore_repeated_source
boolean
-
Ignora a fonte da mensagem quando estiver ignorando mensagens repetidas.
Quando esta configuração estiver On, você não registrará erros com
mensagens repetidas de arquivos ou linhas diferentes.
-
report_memleaks
boolean
-
Se este parâmetro estiver definido como On (o padrão), este parâmetro
mostrará um relatório de vazamentos de memória detectados pelo gerenciador
de memória do Zend. Este relatório será enviado para stderr em plataformas
Posix. No Windows, ele será enviado ao depurador usando o
OutputDebugString() e poderá ser visualizado com ferramentas como o
» DbgView. Este parâmetro só tem
efeito em uma compilação de depuração, e se error_reporting incluir
E_WARNING
na lista de permitidos.
-
track_errors
boolean
-
Se habilitado, a última mensagem de erro estará sempre presente na
variável $php_errormsg.
-
html_errors
boolean
-
Se ativado, as mensagens de erro incluirão tags HTML. O formato para erros
de HTML produz mensagens clicáveis que direcionam o usuário para uma
página descrevendo o erro ou a função que está causando o erro. Essas
referências são afetadas por
docref_root e
docref_ext.
Se desativado, a mensagem de erro será apenas texto simples.
-
xmlrpc_errors
boolean
-
Se ativado, desativa o relatório de erros normal e formata os erros como
mensagem de erro XML-RPC.
-
xmlrpc_error_number
integer
-
Usado como o valor do elemento faultCode do XML-RPC.
-
docref_root
string
-
O novo formato de erro contém uma referência a uma página que descreve o erro
ou a função que está causando o erro. No caso de páginas de manual, você pode
baixar o manual em seu idioma e definir esta diretiva ini para a URL da sua cópia
local. Se a sua cópia local do manual pode ser alcançada por "/manual/"
você pode simplesmente usar docref_root=/manual/
. Além disso,
você precisa definir docref_ext para corresponder às extensões de arquivo de sua cópia
docref_ext=.html
. É possível usar referências
externas. Por exemplo, você pode usar
docref_root=http://manual/en/
ou
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
Na maioria das vezes, você quer que o valor docref_root termine com uma barra
"/"
. Mas veja o segundo exemplo acima, que não tem nem precisa dela.
Nota:
Este é um recurso para dar suporte ao seu desenvolvimento, pois facilita
a pesquisa da descrição de uma função. No entanto, nunca deve ser usado
em sistemas de produção (por exemplo, sistemas conectados à internet).
-
docref_ext
string
-
Veja docref_root.
Nota:
O valor de docref_ext deve começar com um ponto "."
.
-
error_prepend_string
string
-
String para mostrar antes de uma mensagem de erro.
-
error_append_string
string
-
String para mostrar após uma mensagem de erro.
-
error_log
string
-
Nome do arquivo onde os erros de script devem ser registrados. O arquivo
deve ter permissão de escrita pelo usuário do servidor da web. Se o valor
especial syslog
for usado, os erros serão enviados ao
registrador de erros do sistema. No Unix, isso significa syslog(3) e no
Windows significa o log de eventos. Veja também:
syslog().
Se esta diretiva não estiver definida, os erros serão enviados para o
registrador de erros SAPI.
Por exemplo, é um log de erros no Apache ou stderr
no CLI. Veja também error_log().
-
error_log_mode
int
-
Modo de arquivo para o arquivo definido em
error_log.
-
syslog.facility
string
-
Especifica qual tipo de programa está registrando a mensagem. Somente é
efetivo se error_log estiver definido como "syslog".
-
syslog.filter
string
-
Especifica o tipo de filtro para filtrar as mensagens registradas.
Caracteres permitidos são passados sem modificações; todos os outros são
escritos em sua representação hexadecimal prefixado com
\x
. Existem três tipos de filtros suportados:
-
all
– todos os caracteres
-
no-ctrl
– todos os caracteres, exceto os caracteres de controle
-
ascii
– todos os caracteres ASCII imprimíveis e NL
Somente é efetivo se error_log estiver definido como "syslog".
-
syslog.ident
string
-
Especifica a string ident que é anexada a todas as mensagens.
Somente é efetivo se error_log estiver definido como "syslog".