1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
<?xml version="1.0" encoding="iso-8859-9"?>
<!-- $Revision: 1.4 $ -->
<chapter id="features.connection-handling">
<!-- dirge: handling => işleme -->
<title>Bağlantı İşleme</title>
<note>
<para>Burada yazanlar 3.0.7 ve sonrası srmler iin geerlidir.</para>
</note>
<para>
PHP'nin iinde bağlantı durumu saklanır. Olası durumlar 3 tanedir:
<itemizedlist>
<listitem><simpara>0 - NORMAL (normal)</simpara></listitem>
<listitem><simpara>1 - ABORTED (iptal edilmiş)</simpara></listitem>
<listitem><simpara>2 - TIMEOUT (zaman aşımına uğramış)</simpara></listitem>
</itemizedlist>
</para>
<simpara>
PHP betiği normal olarak alışırken NORMAL durumu aktiftir. Eğer alıcı
taraf bağlantıyı keserse ABORTED durum anahtarı aktifleştirilir. Alıcı
tarafın bağlantıyı kesmesi genellikle uzaktaki kullanıcının STOP dğmesine
basmasından kaynaklanır. Eğer PHP'ye bildirilen zaman sınırına (bkz.
<function>set_time_limit</function>) ulaşılırsa, TIMOUT durum anahtarı
aktifleştirilir.
</simpara>
<simpara>
<!-- dirge: return => dndrmek -->
<!-- dirge: directive => direktif -->
Alıcının bağlantıyı kesmesi durumunda PHP betiğinin alışmasının durdurulup
durdurulmayacağını seebilirsiniz. Bazı durumlarda karşı taraftaki internet
gezgini yolladığınız ıktıyı almıyor olsa bile PHP betiğinin normal olarak
sonlanması kullanışlı olabilir. Ancak PHP'nin ntanımlı davranışı karşı
taraftaki internet gezgini bağlantıyı kestiğinde betiği sonlandırmaktır.
Bu davranış ignore_user_abort php.ini direktifiyle ayarlanabileceği gibi
bunun Apache .conf karşılığı olan php3_ignore_user_abort direktifiyle veya
<function>ignore_user_abort</function> fonksiyonuyla da ayarlanabilir. Tek
istisna <function>register_shutdown_function</function> fonksiyonu ile
bir kapanış fonksiyonu tanımlamanızdır. Tanımlı bir kapanış fonkiyonu
varken, betiğiniz ıktı yollamaya alıştığında PHP alıcının STOP dğmesine
bastığını algılayacak ve tanımladığınız fonksiyonu ağıracaktır. Bu kapanış
fonksiyonu ayrıca betiğiniz normal olarak sonlandığında da ağrılacağı
iin, sadece bağlantının kesilmesi durumunda yapılmasını istediğiniz işler
varsa <function>connection_aborted</function> fonksiyonunu
kullanabilirsiniz. Bu fonksiyon eğer bağlantı kesilmişse &true; değerini
dndrecektir.
</simpara>
<simpara>
Betiğiniz ayrıca yerleşik betik sre-leri tarafından da
sonlandırılabilir. ntanımlı zaman 30 saniyedir. Bu değer
max_execution_time php.ini direktifi veya bunun Apache .conf karşılığı olan
php3_max_execution_time direktifi ile ayarlanabileceği gibi
<function>set_time_limit</function> fonksiyonuyla da ayarlanabilir.
Belirlenen azami srenin dolması durumunda betik sonlandırılacak, ve
yukarıdaki bağlantı kesilmesi durumunda olduğu gibi, varsa, tanımlanmış
kapanış fonksiyonu ağrılacaktır. Bu kapanış fonksiyonunun iinde,
ağrılmasının sebebinin sre dolması olup olmadığını ğrenmek isterseniz
<function>connection_timeout</function> fonksiyonunu kullanabilirsiniz. Bu
fonksiyon srenin dolmuş olması durumunda &true; değerini dndrecektir.
</simpara>
<simpara>
Dikkat edilmesi gereken bir nokta hem ABORTED hem de TIMEOUT durumlarının
aynı anda aktif olabileceğidir. Bu, PHP'ye karşı tarafın bağlantıyı
sonlandırmasını gzardı etmesini sylerseniz mmkn olur. PHP'nin
bağlantının kapandığını anlamasına rağmen betik alışmaya devam edecektir.
Sre sınırı aşıldığında betik sonlandırılır ve, varsa, kapanış fonksiyonu
ağrılır. Bu noktada <function>connection_timeout</function> ve
<function>connection_aborted</function> fonksiyonları &true; değerini
dndrr. İki durumu aynı anda <function>connection_status</function>
fonksiyonu ile kontrol edebilirsiniz. Bu fonksiyon aktif durumları ieren
bit alanını dndrr. rneğin, iki durum da aktifse geriye dnş değeri
olarak 3' verecektir.
</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
-->
|