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
-->