Files
2025-03-06 10:37:25 -03:00

599 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 72a6f3d35e914602703b698a5d8f52732b61ed3e Maintainer: leonardolara Status: ready --><!-- CREDITS: mauricio,leonardolara -->
<section xml:id="errorfunc.configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Opções de Configuração de Erros e de Registros</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.error-reporting">error_reporting</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.display-errors">display_errors</link></entry>
<entry>"1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.display-startup-errors">display_startup_errors</link></entry>
<entry>"1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>
Antes do PHP 8.0.0, o valor padrão era <literal>"0"</literal>.
</entry>
</row>
<row>
<entry><link linkend="ini.log-errors">log_errors</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.log-errors-max-len">log_errors_max_len</link></entry>
<entry>"1024"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Sem efeito a partir do PHP 8.0.0, removido a partir do PHP 8.1.0.</entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-errors">ignore_repeated_errors</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.ignore-repeated-source">ignore_repeated_source</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.report-memleaks">report_memleaks</link></entry>
<entry>"1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.track-errors">track_errors</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Descontinuado a partir do PHP 7.2.0, removido a partir do PHP 8.0.0.</entry>
</row>
<row>
<entry><link linkend="ini.html-errors">html_errors</link></entry>
<entry>"1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-errors">xmlrpc_errors</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.xmlrpc-error-number">xmlrpc_error_number</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.docref-root">docref_root</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.docref-ext">docref_ext</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-prepend-string">error_prepend_string</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-append-string">error_append_string</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-log">error_log</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.error-log-mode">error_log_mode</link></entry>
<entry>0o644</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Disponível a partir do PHP 8.2.0</entry>
</row>
<row>
<entry><link linkend="ini.syslog.facility">syslog.facility</link></entry>
<entry>"LOG_USER"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponível a partir do PHP 7.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.syslog.filter">syslog.filter</link></entry>
<entry>"no-ctrl"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Disponível a partir do PHP 7.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.syslog.ident">syslog.ident</link></entry>
<entry>"php"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponível a partir do PHP 7.3.0.</entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.error-reporting">
<term>
<parameter>error_reporting</parameter>
<type>int</type>
</term>
<listitem>
<para>
Define o nível das reportagens de erros. O parâmetro é ou um inteiro
representando um campo de bits ou constantes nomeadas. Os níveis e
constantes de reportagens de erros estão descritos em
<link linkend="errorfunc.constants">Constantes Predefinidas</link> e no
arquivo &php.ini;. Para definir em tempo de execução, use a função
<function>error_reporting</function>. Consulte também a diretiva
<link linkend="ini.display-errors">display_errors</link>.
</para>
<para>
O padrão é <constant>E_ALL</constant>.
</para>
<para>
Antes do PHP 8.0.0, o valor padrão era:
<userinput><constant>E_ALL</constant> &amp;
~<constant>E_NOTICE</constant> &amp;
~<constant>E_STRICT</constant> &amp;
~<constant>E_DEPRECATED</constant></userinput>.
Isto significa que os diagnósticos de nível <constant>E_NOTICE</constant>,
<constant>E_STRICT</constant> e <constant>E_DEPRECATED</constant>
não eram mostrados.
</para>
<note>
<title>Constantes do PHP fora do PHP</title>
<para>
Usar constantes do PHP fora do PHP, como no <filename>httpd.conf</filename>,
não terão significado algum, portanto, nesses casos, os valores <type>int</type>
são necessários. E, como níveis de erro serão adicionados ao longo do tempo, o valor
máximo (para <constant>E_ALL</constant>) provavelmente será alterado. Portanto, no lugar de
<constant>E_ALL</constant>, 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
<literal>2147483647</literal> (inclui todos os erros, não apenas
<constant>E_ALL</constant>).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.display-errors">
<term>
<parameter>display_errors</parameter>
<type>string</type>
</term>
<listitem>
<para>
Este parâmetro determina se os erros devem ser mostrados na tela
como parte da saída ou se devem ser ocultados do usuário.
</para>
<para>
O valor <literal>"stderr"</literal> envia os erros para <literal>stderr</literal>
em vez de <literal>stdout</literal>.
</para>
<note>
<para>
Este é um recurso para dar suporte ao desenvolvimento e nunca deve ser usado
em sistemas de produção (por exemplo, sistemas conectados à internet).
</para>
</note>
<note>
<para>
Embora display_errors possa ser configurado em tempo de execução (com <function>ini_set</function>),
ele não terá nenhum efeito se o script tiver erros fatais.
Isso ocorre porque a ação desejada em tempo de execução não é executada.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.display-startup-errors">
<term>
<parameter>display_startup_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.log-errors">
<term>
<parameter>log_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Informa se as mensagens de erro de script devem ser gravadas no
registro de erros do servidor ou no local indicado por <link linkend="ini.error-log">error_log</link>.
Essa opção é, portanto, específica do servidor.
</para>
<note>
<para>
É altamente aconselhável usar o registro de erros em vez de
exibir erros em sites de produção.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.log-errors-max-len">
<term>
<parameter>log_errors_max_len</parameter>
<type>int</type>
</term>
<listitem>
<para>
Define o comprimento máximo de log_errors em bytes. Em
<link linkend="ini.error-log">error_log</link>, informações sobre a
fonte são adicionadas. O padrão é 1024, e 0 permite não aplicar
limite de comprimento.
Esse tamanho é aplicado a erros registrados, erros exibidos e também a
<varname>$php_errormsg</varname>, mas não a funções chamadas
explicitamente como <function>error_log</function>.
</para>
&ini.shorthandbytes;
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ignore-repeated-errors">
<term>
<parameter>ignore_repeated_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Não registra mensagens repetidas. Erros repetidos devem ocorrer no mesmo
arquivo e na mesma linha, a menos que
<link linkend="ini.ignore-repeated-source">ignore_repeated_source</link>
seja definido como verdadeiro.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ignore-repeated-source">
<term>
<parameter>ignore_repeated_source</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Ignora a fonte da mensagem quando estiver ignorando mensagens repetidas.
Quando esta configuração estiver On, não serão registrados erros com
mensagens repetidas de arquivos ou linhas diferentes.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.report-memleaks">
<term>
<parameter>report_memleaks</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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 <link xlink:href="&url.dbgview;">DbgView</link>.
Este parâmetro só tem efeito em uma compilação de depuração e se
error_reporting incluir <constant>E_WARNING</constant> na lista de
erros permitidos.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.track-errors">
<term>
<parameter>track_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Se habilitado, a última mensagem de erro estará sempre presente na
variável <varname>$php_errormsg</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.html-errors">
<term>
<parameter>html_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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
<link linkend="ini.docref-root">docref_root</link> e
<link linkend="ini.docref-ext">docref_ext</link>.
</para>
<para>
Se desativado, a mensagem de erro será apenas texto simples.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.xmlrpc-errors">
<term>
<parameter>xmlrpc_errors</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Se ativado, desativa o relatório de erros normal e formata os erros como
mensagem de erro XML-RPC.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.xmlrpc-error-number">
<term>
<parameter>xmlrpc_error_number</parameter>
<type>int</type>
</term>
<listitem>
<para>
Usado como o valor do elemento faultCode do XML-RPC.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.docref-root">
<term>
<parameter>docref_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
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, pode-se
baixar o manual no idioma próprio e definir esta diretiva ini para a URL da cópia
local. Se a cópia local do manual puder ser alcançada por <literal>"/manual/"</literal>
pode-se simplesmente usar <userinput>docref_root=/manual/</userinput>. Além disso,
é necessário definir docref_ext para corresponder às extensões de arquivo da cópia local
<userinput>docref_ext=.html</userinput>. É possível usar referências
externas. Por exemplo, pode-se usar
<userinput>docref_root=http://manual/en/</userinput> ou
<userinput>docref_root="http://landonize.it/?how=url&amp;theme=classic&amp;filter=Landon
&amp;url=http%3A%2F%2Fwww.php.net%2F"</userinput>
</para>
<para>
Na maioria das vezes, é desejado que o valor docref_root termine com uma barra
<literal>"/"</literal>. Mas veja o segundo exemplo acima, que não tem nem precisa dela.
</para>
<note>
<para>
Este é um recurso para dar suporte ao 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).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.docref-ext">
<term>
<parameter>docref_ext</parameter>
<type>string</type>
</term>
<listitem>
<para>
Consulte <link linkend="ini.docref-root">docref_root</link>.
</para>
<note>
<para>
O valor de docref_ext deve começar com um ponto <literal>"."</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-prepend-string">
<term>
<parameter>error_prepend_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
String a ser mostrado antes de uma mensagem de erro.
Usado apenas quando a mensagem de erro é mostrada na tela. O propósito principal
é prover a capacidade de prefixar uma marcação HTML adicional à mensagem de erro.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-append-string">
<term>
<parameter>error_append_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
String para mostrar após uma mensagem de erro.
Usado apenas quando a mensagem de erro é mostrada na tela. O propósito principal
é prover a capacidade de posfixar uma marcação HTML adicional à mensagem de erro.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
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 <literal>syslog</literal> 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:
<function>syslog</function>.
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 <literal>stderr</literal>
no CLI. Consulte também <function>error_log</function>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.error-log-mode">
<term>
<parameter>error_log_mode</parameter>
<type>int</type>
</term>
<listitem>
<para>
Modo de arquivo para o arquivo definido em
<link linkend="ini.error-log">error_log</link>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.facility">
<term>
<parameter>syslog.facility</parameter>
<type>string</type>
</term>
<listitem>
<para>
Especifica qual tipo de programa está registrando a mensagem.
Apenas efetivo se <link linkend="ini.error-log">error_log</link> estiver definido como "syslog".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.filter">
<term>
<parameter>syslog.filter</parameter>
<type>string</type>
</term>
<listitem>
<para>
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 prefixados com <literal>\x</literal>.
<itemizedlist>
<listitem>
<simpara><literal>all</literal> - a string registrada será partida
nos caracteres de novas linhas, e todos os caracteres serão passados inalterados
</simpara>
</listitem>
<listitem>
<simpara><literal>ascii</literal> - a string registrada será partida
nos caracteres de novas linhas, e qualquer caractere ASCII de 7 bits não imprimível será escapado
</simpara>
</listitem>
<listitem>
<simpara><literal>no-ctrl</literal> - a string registrada será partida
nos caracteres de novas linhas, e qualquer caractere não imprimível será escapado
</simpara>
</listitem>
<listitem>
<simpara><literal>raw</literal> - todos os caracteres são passados ao registrador do
sistema logger inalterados, sem separação novas linhas (idêntico ao PHP antes do 7.3)
</simpara>
</listitem>
</itemizedlist>
Esta configuração irá afetar o registro através de <link linkend="ini.error-log">error_log</link> definido para "syslog" e chamadas a <function>syslog</function>.
</para>
<note>
<para>
O tipo de filtro <literal>raw</literal> está disponível a partir do PHP 7.3.8 e do PHP 7.4.0.
</para>
</note>
<simpara>
Esta diretiva não é suportada no Windows.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.syslog.ident">
<term>
<parameter>syslog.ident</parameter>
<type>string</type>
</term>
<listitem>
<para>
Especifica a string de identificação que é anexada a todas as mensagens.
Somente é efetivo se <link linkend="ini.error-log">error_log</link> estiver definido como "syslog".
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->