mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
94 lines
4.3 KiB
XML
94 lines
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- EN-Revision: dc0f955be2a10b707ae06f7da69f52fab24df3d1 Maintainer: leonardolara Status: ready --><!-- CREDITS: narigone, pauloelr, rogeriopradoj, geekcom -->
|
|
<chapter xml:id="features.connection-handling" xmlns="http://docbook.org/ns/docbook">
|
|
<title>Tratamento de Conexões</title>
|
|
|
|
<para>
|
|
O estado de uma conexão é mantido internamente no PHP. Existem 4
|
|
estados possíveis:
|
|
<itemizedlist>
|
|
<listitem><simpara>0 - NORMAL</simpara></listitem>
|
|
<listitem><simpara>1 - ABORTADO</simpara></listitem>
|
|
<listitem><simpara>2 - EXPIRADO</simpara></listitem>
|
|
<listitem><simpara>3 - ABORTADO e EXPIRADO</simpara></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<simpara>
|
|
Quando um script PHP está sendo executado normalmente, o estado NORMAL está ativo.
|
|
Se o cliente remoto desconectar, o estado ABORTADO é
|
|
ativado. Uma desconexão do cliente remoto é normalmente causada pelo
|
|
usuário pressionando o botão de parada. Se o tempo limite imposto pelo PHP (veja
|
|
<function>set_time_limit</function>) é alcançado, o estado EXPIRADO
|
|
é ativado.</simpara>
|
|
|
|
<simpara>
|
|
É possível decidir se a desconexão do cliente cause ou não uma
|
|
interrupção no script. As vezes é útil deixar o script em execução
|
|
até que seja concluído mesmo se não houver nenhum navegador remoto recebendo
|
|
a saída. O comportamento padrão, no entanto, é a interrupção
|
|
do script quando o cliente remoto se desconecta. Esse comportamento pode ser
|
|
configurado através da diretiva ignore_user_abort do &php.ini;, assim como pela
|
|
diretiva correspondente <literal>php_value ignore_user_abort</literal> no
|
|
&httpd.conf; do Apache ou
|
|
com a função <function>ignore_user_abort</function>. Se o PHP não for instruído
|
|
a ignorar o aborto por parte do usuário e ele abortar, o script
|
|
será encerrado. A única exceção é se uma função de finalização tiver sido
|
|
registrada usando <function>register_shutdown_function</function>. Com uma
|
|
função de finalização, quando um usuário remoto clica no botão de parada, a
|
|
próxima vez que o script tentar gerar alguma saída, o PHP detectará que
|
|
a conexão foi cancelada e a função de finalização é chamada.
|
|
Essa função de finalização também será chamada no fim do script
|
|
mesmo que ele termine normalmente, então para fazer algo diferente caso o cliente
|
|
desconecte, a função <function>connection_aborted</function> pode ser usada.
|
|
Essa função retorna &true; se a conexão foi
|
|
abortada.</simpara>
|
|
|
|
<simpara>
|
|
O script também pode ser finalizado pelo temporizador interno.
|
|
O tempo limite padrão é de 30 segundos. Pode ser alterado usando a
|
|
diretiva <option>max_execution_time</option> do &php.ini; ou a diretiva correspondente
|
|
no &httpd.conf; do Apache <literal>php_value max_execution_time</literal>
|
|
assim como com a função
|
|
<function>set_time_limit</function>. Quando o temporizador
|
|
chega ao limite, o script será abortado e assim como o caso acima
|
|
de desconexão pelo cliente, se uma função de finalização foi registrada, ela será
|
|
chamada. Dentro da função de finalização, pode ser verificado se a
|
|
causa da finalização foi tempo limite excedido chamando-se a
|
|
função <function>connection_status</function>. Essa função retorna
|
|
2 se a causa foi tempo limite excedido.
|
|
</simpara>
|
|
|
|
<simpara>
|
|
Importante notar que ambos os estados ABORTADO e EXPIRADO
|
|
podem estar ativos ao mesmo tempo. Isso é possível se o PHP
|
|
for instruído a ignorar o aborto causado pelo usuário. O PHP continuará a perceber que
|
|
o usuário pode ter quebrado a conexão, mas o script continuará
|
|
sendo executado. Se o tempo limite for alcançado, ele será abortado e
|
|
sua função de finalização, se existente, será chamada. Nesse ponto,
|
|
a função <function>connection_status</function>
|
|
retornará 3.
|
|
</simpara>
|
|
</chapter>
|
|
|
|
<!-- 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
|
|
-->
|