cvs: phpdoc-ca /features connection-handling.xml
[email protected] ("Eduard Capell Brufau") Tue, 30 Aug 2005 04:46:25 -0000
| Newsgroups | php.doc.ca |
|---|---|
| Message-ID | <cvseduardcapell1125377185@cvsserver> |
eduardcapell Tue Aug 30 00:46:25 2005 EDT
Added files:
/phpdoc-ca/features connection-handling.xml
Log:
http://cvs.php.net/co.php/phpdoc-ca/features/connection-handling.xml?r=1.1&p=1
Index: phpdoc-ca/features/connection-handling.xml
+++ phpdoc-ca/features/connection-handling.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.17 Maintainer: eduardcapell Status: ready -->
<chapter id="features.connection-handling">
<title>Gestió de les connexions</title>
<note>
<para>El següent s'aplica a la versió 3.0.7 i posteriors.</para>
</note>
<para>
Internament, en PHP es mantè un estat de connexió. Hi ha 3 possibles estats:
<itemizedlist>
<listitem><simpara>0 - NORMAL</simpara></listitem>
<listitem><simpara>1 - ABORTED</simpara></listitem>
<listitem><simpara>2 - TIMEOUT</simpara></listitem>
</itemizedlist>
</para>
<simpara>
Quan una seqüència PHP s'executa normalment l'estat actiu és NORMAL. Si el
client remot es desconnecta s'activa l'estat ABORTED. Una desconnexió del
client sol donar-se quan l'usuari pressiona el seu botó STOP. Si el límit de
temps que imposa el PHP (vegeu <function>set_time_limit</function>)
s'exhaureix, s'activa l'estat TIMEOUT.</simpara>
<simpara>
Podeu decidir si voleu que una desconnexió de client causi la cancel·lacó de
la vostra seqüència. A vegades és útil de fer que les seqüències s'executin
fins al final fins i tot en els casos en què no hi ha un navegador remot que
en rebi la sortida. El comportament per defecte, però, és la cancel·lació de
la seqüència quan el client remot es desconnecta. Aquest comportament es pot
configurar des de la directiva ignore_user_abort al &php.ini;i també per
mitjà de la corresponent directiva de configuració d'Apache
"php_value ignore_user_abort" o bé amb la funció
<function>ignore_user_abort</function>. Si no li dieu al PHP que ignori una
cancel·lació per part de l'usuari, i aquest efectivament cancel·la, la
vostra seqüència s'acabarà. L'excepció és el cas en què heu registrat una
funció d'apagada, amb <function>register_shutdown_function</function>. Amb
aquesta funció, quan l'usuari remot fa click al botó STOP, el proper cop que
la seqüència intenti enviar qualsevol cosa, el PHP detectarà que la connexió
ha estat avortada i es cridarà la funció d'apagada. Aquesta funció d'apagada
també es cridarà al final d'una seqüència que finalitza normalment. Per tant,
en el cas de fer alguna cosa diferent en el cas d'una desconnexió del client,
podeu fer servir la funció <function>connection_aborted</function>. Aquesta
funció retornarà &true; si la connexió ha estat avortada.</simpara>
<simpara>
Una seqüència també pot ser finalitzada pel temporitzador de seqüències
inclòs en PHP. El temps d'espera per defecte és de 30 segons. El podeu
canviar amb la directiva <option>max_execution_time</option> del &php.ini; o
bé la corresponent directiva de configuració de l'Apache,
<literal>php_value max_execution_time</literal>, i també amb la funció
<function>set_time_limit</function>. Quan el temps d'espera s'excedeix, la
seqüència avortarà com si hi hagués hagut una desconnexió de client, i es
cridarà la funció d'apagada si és que existeix. Dins de la funció d'apagada
podeu comprovar si ha estat el temps excedit el que ha causat l'apagada,
mitjançant la crida a la funció <function>connection_status</function>.
Aquesta funció retorna el valor 2 si ha estat un temps d'espera excedit el
qui ha causat la crida a la funció d'apagada.
</simpara>
<simpara>
És important d'observar que els estats ABORTED i TIMEOUT poden estar actius
al mateix temps. Això és possible si li dieu al PHP que ignore les
cancel·lacions d'usuari. El PHP guardarà igualment la informació que
reflectirà que l'usuari ha cancel·lat la connexió, però la seqüència
continuarà executant-se. Si llavors s'excedeix el temps d'espera màxim, la
seqüència s'avortarà i es cridarà la funció d'apagada (si existeix). En
aquest punt, podreu comprovar que el valor que us retorna la funció
<function>connection_status</function> és 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:"../../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
-->