cvs: phpdoc-ca /features connection-handling.xml

From: Date: Tue, 30 Aug 2005 04:46:25 +0000
Subject: cvs: phpdoc-ca /features connection-handling.xml
Groups: php.doc.ca 
Request: Send a blank email to doc-ca+get-68@lists.php.net to get a copy of this message
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 -->

« previous php.doc.ca (#68) next »