cvs: phpdoc /tr/features connection-handling.xml error-handling.xml persistent-connections.xml remote-files.xml
| From: | Serdar Soydemir | Date: | Mon, 10 Dec 2001 18:24:46 +0000 |
| Subject: | cvs: phpdoc /tr/features connection-handling.xml error-handling.xml persistent-connections.xml remote-files.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969339608@lists.php.net to get a copy of this message | ||
tpug Mon Dec 10 13:24:46 2001 EDT
Modified files:
/phpdoc/tr/features connection-handling.xml error-handling.xml
persistent-connections.xml remote-files.xml
Log:
some corrections by Alper
Index: phpdoc/tr/features/connection-handling.xml diff -u phpdoc/tr/features/connection-handling.xml:1.1 phpdoc/tr/features/connection-handling.xml:1.2 --- phpdoc/tr/features/connection-handling.xml:1.1 Sun Dec 9 17:39:42 2001 +++ phpdoc/tr/features/connection-handling.xml Mon Dec 10 13:24:46 2001 @@ -1,81 +1,81 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.1 $ --> +<?xml version="1.0" encoding="iso-8859-9"?> +<!-- $Revision: 1.2 $ --> <chapter id="features.connection-handling"> - <!-- dirge: handling => isleme --> - <title>Bağlantı İşleme</title> + <!-- dirge: handling => iþleme --> + <title>Baðlantý Ýþleme</title> - <note> - <para>Burada yazanlar 3.0.7 ve sonrası sürümler için geçerlidir.</para> - </note> - - <para> - PHP'nin içinde bağlantı durumu muhafaza edilir. 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 durumu anahtarı aktifleştirilir. Alıcı - tarafın bağlantıyı kesmesi genellikle uzak 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, TIMEOUT durum anahtarı - aktifleştirilir. - </simpara> - - <simpara> - Alıcının bağlantıyı kesmesi durumunda PHP betiğinin çalışmasının durdurulup - durdurulmayacağını seçebilirsiniz. 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ğı - için, sadece bağlantının kesilmesi durumunda yapılmasını istediğiniz işler - varsa <function>connection_aborted</function> fonksiyonunu - kullanabilirsiniz. Bu fonksiyon bağlantı kesilmişse &true; değerini - döndürecektir. - </simpara> - - <simpara> - Betiğiniz ayrıca yerleşik betik süre-ölçeri 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 sürenin 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 içinde, - çağrılmasının sebebinin süre dolması olup olmadığını öğrenmek isterseniz - <function>connection_timeout</function> fonksiyonunu kullanabilirsiniz. Bu - fonksiyon sürenin dolmuş olması durumunda &true; değerini döndürecektir. - </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ı gözardı etmesini söylerseniz mümkün olur. PHP'nin - bağlantının kapandığını anlamasına rağmen betik çalışmaya devam edecektir. - Süre 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 - döndürür. İki durumu aynı anda <function>connection_status</function> - fonksiyonu ile kontrol edebilirsiniz. Bu fonksiyon aktif durumları içeren - bit alanını döndürür. Örneğin, iki durum da aktifse geriye dönüş değeri - olarak 3'ü verecektir. - </simpara> - - </chapter> + <note> + <para>Burada yazanlar 3.0.7 ve sonrasý sürümler için geçerlidir.</para> + </note> + + <para> + PHP'nin içinde 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 => döndürmek --> + <!-- dirge: directive => direktif --> + Alýcýnýn baðlantýyý kesmesi durumunda PHP betiðinin çalýþmasýnýn durdurulup + durdurulmayacaðýný seçebilirsiniz. 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ðý + için, 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 + döndürecektir. + </simpara> + + <simpara> + Betiðiniz ayrýca yerleþik betik süre-ölçeri 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 sürenin 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 içinde, + çaðrýlmasýnýn sebebinin süre dolmasý olup olmadýðýný öðrenmek isterseniz + <function>connection_timeout</function> fonksiyonunu kullanabilirsiniz. Bu + fonksiyon sürenin dolmuþ olmasý durumunda &true; deðerini döndürecektir. + </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ý gözardý etmesini söylerseniz mümkün olur. PHP'nin + baðlantýnýn kapandýðýný anlamasýna raðmen betik çalýþmaya devam edecektir. + Süre 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 + döndürür. Ýki durumu ayný anda <function>connection_status</function> + fonksiyonu ile kontrol edebilirsiniz. Bu fonksiyon aktif durumlarý içeren + bit alanýný döndürür. Örneðin, iki durum da aktifse geriye dönüþ deðeri + olarak 3'ü verecektir. + </simpara> +</chapter> <!-- Keep this comment at the end of the file Local variables: Index: phpdoc/tr/features/error-handling.xml diff -u phpdoc/tr/features/error-handling.xml:1.1 phpdoc/tr/features/error-handling.xml:1.2 --- phpdoc/tr/features/error-handling.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/error-handling.xml Mon Dec 10 13:24:46 2001 @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.error-handling"> - <title>Hata İþlemleri</title> + <title>Hata Ýþlemleri</title> <para> - PHP'de pek çok uyarı çeþidi vardır. Bunlar: + PHP'de pek çok uyarý çeþidi vardýr. Bunlar: <table> - <title>PHP uyarı çeþitleri</title> + <title>PHP uyarý çeþitleri</title> <tgroup cols="4"> <thead> <row> - <entry>Değer</entry> + <entry>Deðer</entry> <entry>Sabit</entry> - <entry>Tanım</entry> + <entry>Taným</entry> <entry>Not</entry> </row> </thead> @@ -21,40 +21,40 @@ <row> <entry>1</entry> <entry>E_ERROR</entry> - <entry>hayati çalıþma hataları</entry> + <entry>hayati çalýþma hatalarý</entry> <entry></entry> </row> <row> <entry>2</entry> <entry>E_WARNING</entry> - <entry>çalıþma uyarıları (hayati olmayan hatalar)</entry> + <entry>çalýþma uyarýlarý (hayati olmayan hatalar)</entry> <entry></entry> </row> <row> <entry>4</entry> <entry>E_PARSE</entry> - <entry>derleme sırasında ayrıþtırma hataları</entry> + <entry>derleme sýrasýnda ayrýþtýrma hatalarý</entry> <entry></entry> </row> <row> <entry>8</entry> <entry>E_NOTICE </entry> <entry> - çalıþma sırasındaki bildirimler (uyarılardan daha az önemli) + çalýþma sýrasýndaki bildirimler (uyarýlardan daha az önemli) </entry> <entry></entry> </row> <row> <entry>16</entry> <entry>E_CORE_ERROR</entry> - <entry>PHP'nin iç yapısıyla ilgili, baþlatılmasını engelleyen hayati hatalar</entry> + <entry>PHP'nin iç yapýsýyla ilgili, baþlatýlmasýný engelleyen hayati hatalar</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>32</entry> <entry>E_CORE_WARNING</entry> <entry> - PHP'nin iç yapısıyla ilgili, baþlatılması ile ilgili uyarılar (hayati olmayan + PHP'nin iç yapýsýyla ilgili, baþlatýlmasý ile ilgili uyarýlar (hayati olmayan hatalar) </entry> <entry>sadece PHP 4</entry> @@ -62,37 +62,37 @@ <row> <entry>64</entry> <entry>E_COMPILE_ERROR</entry> - <entry>hayati derleme hataları</entry> + <entry>hayati derleme hatalarý</entry> <entry>Sadece PHP 4</entry> </row> <row> <entry>128</entry> <entry>E_COMPILE_WARNING</entry> - <entry>derleme sırasındaki uyarılar (hayati olmayan hatalar)</entry> + <entry>derleme sýrasýndaki uyarýlar (hayati olmayan hatalar)</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>256</entry> <entry>E_USER_ERROR</entry> - <entry>kullanıcının yarattığı hata mesajı</entry> + <entry>kullanýcýnýn yarattýðý hata mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>512</entry> <entry>E_USER_WARNING</entry> - <entry>kullanıcının yarattığı uyarı mesajı</entry> + <entry>kullanýcýnýn yarattýðý uyarý mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>1024</entry> <entry>E_USER_NOTICE </entry> - <entry>kullanıcının yarattığı bildiri mesajı</entry> + <entry>kullanýcýnýn yarattýðý bildiri mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry></entry> <entry>E_ALL</entry> - <entry>desteklendiği sürece, yukarıdakilerin hepsi</entry> + <entry>desteklendikleri sürece, yukarýdakilerin hepsi</entry> <entry></entry> </row> </tbody> @@ -101,82 +101,82 @@ </para> <para> - Yukarıdaki değerler (sayısal veya sembolik) hangi hataların bildirileceğini - belirleyen bit maskesini oluþtururken kullanılır. Bu değerleri - birleþtirmeyi veya bazılarını maskelemeyi - <link linkend="language.operators.bitwise">bit-tabanlı iþlemler</link> ile + Yukarýdaki deðerler (sayýsal veya sembolik) hangi hatalarýn bildirileceðini + belirleyen bit maskesini oluþtururken kullanýlýr. Bu deðerleri + birleþtirmeyi veya bazýlarýný maskelemeyi + <link linkend="language.operators.bitwise">bit-tabanlý iþlemler</link> ile yapabilirsiniz. <filename>php.ini</filename> içinde sadece '|', '~', '!' ve - '&' iþlemlerinin anlaþılacağına, ve <filename>php3.ini</filename> - içinde hiçbirinin anlaþılmayacağına dikkat edin. + '&' iþlemlerinin anlaþýlacaðýna, ve <filename>php3.ini</filename> + içinde hiçbirinin anlaþýlmayacaðýna dikkat edin. </para> <para> - PHP 4'te öntanımlı <link - linkend="ini.error-reporting">error_reporting</link> değeri <literal>E_ALL - & ~E_NOTICE</literal>'dir ve anlamı E-NOTICE-seviyesi dıþındaki tüm - hataların ve uyarıların bildirilmesidir. PHP 3'de öntanımlı ayar - <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>'dır ve anlamı öncekiyle - aynıdır. Fakat dikkat edin ki, PHP 3'ün <filename>php3.ini</filename> - dosyasında sabitler desteklenmediğinden <link - linkend="ini.error-reporting">error_reporting</link> ayarı sayısal olmak - durumundadır; az önce belirtilen değer de <literal>7</literal>'ye denk + PHP 4'te öntanýmlý <link + linkend="ini.error-reporting">error_reporting</link> deðeri <literal>E_ALL + & ~E_NOTICE</literal>'dir ve anlamý E-NOTICE-seviyesi dýþýndaki tüm + hatalarýn ve uyarýlarýn bildirilmesidir. PHP 3'de öntanýmlý ayar + <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>'dýr ve anlamý öncekiyle + aynýdýr. Fakat dikkat edin ki, PHP 3'ün <filename>php3.ini</filename> + dosyasýnda sabitler desteklenmediðinden <link + linkend="ini.error-reporting">error_reporting</link> ayarý sayýsal olmak + durumundadýr; az önce belirtilen deðer de <literal>7</literal>'ye denk gelir. </para> <para> - Baþlangıç değeri ini dosyasında <link - linkend="ini.error-reporting">error_reporting</link> direktifyle, - Apache'nizin <filename>httpd.conf</filename> dosyasında php_error_reporting - (PHP 3 için php3_error_reporting) direktifiyle, ve son olarak çalıþma - esnasında betik içinden <function>error_reporting</function> fonksiyonuyla + Baþlangýç deðeri ini dosyasýnda <link + linkend="ini.error-reporting">error_reporting</link> direktifiyle, + Apache'nizin <filename>httpd.conf</filename> dosyasýnda php_error_reporting + (PHP 3 için php3_error_reporting) direktifiyle, ve son olarak çalýþma + esnasýnda betik içinden <function>error_reporting</function> fonksiyonuyla belirlenebilir. </para> <warning> <para> - Sunucularınızı veya kodlarınızı PHP 3'ten PHP 4'e yükseltirken bu ayarları - ve <function>error_reporting</function> fonksiyonu çağrımlarını kontrol - etmelisiniz yoksa istemeyerek yeni hata çeþitlerinin bildirimlerini - kapatabilirsiniz, özellikle E_COMPILE_ERROR. Bu hatanın ne ve nerede - olduğuna dair hiç bir bilgi bırakmadan betiklerinizin tamamiyle boþ + Sunucularýnýzý veya kodlarýnýzý PHP 3'ten PHP 4'e güncellerken bu ayarlarý + ve <function>error_reporting</function> fonksiyonu çaðrýmlarýný kontrol + etmelisiniz, yoksa istemeyerek yeni hata çeþitlerinin bildirimlerini + kapatabilirsiniz, özellikle E_COMPILE_ERROR'u. Bu, hatanýn ne ve nerede + olduðuna dair hiç bir bilgi býrakmadan betiklerinizin tamamiyle boþ sayfalar üretmesine yolaçabilir. </para> </warning> <para> - Tüm <link linkend="language.expressions">PHP ifadeler</link> @ ön-ekiyle - çağrılabilir. Bu ön-ek, o ifade için hata bildirimini kapatacaktır. Eğer - böyle bir ifade sırasında hata oluþursa, ve <link - linkend="ini.track-errors">track_errors</link> özelliği aktifse, hata - mesajını <literal>$php_errormsg</literal> genel değiþkeninde + Tüm <link linkend="language.expressions">PHP ifadeleri</link> @ ön-ekiyle + çaðrýlabilir. Bu ön-ek, o ifade için hata bildirimini kapatacaktýr. Eðer + böyle bir ifade sýrasýnda hata oluþursa, ve <link + linkend="ini.track-errors">track_errors</link> özelliði aktifse, hata + mesajýný <literal>$php_errormsg</literal> genel deðiþkeninde bulabilirsiniz. </para> <note> <para> <link linkend="language.operators.errorcontrol">@ hata-kontrol - iþlemi</link> ön-eki ayrıþtırma hatalarını kapatmayacaktır. + iþlemi</link> ön-eki, ayrýþtýrma hatalarýný kapatmayacaktýr. </para> </note> <warning> <para> - Şu an için <link linkend="language.operators.errorcontrol">@ - hata-kontrol iþlemi</link> ön eki betik sonlandırılmasına yol açacak - kritik hataların bile gösterilmesini engelleyecektir. Diğer þeylerin - dıþında, bu demektir ki <link + Þu an için <link linkend="language.operators.errorcontrol">@ + hata-kontrol iþlemi</link> ön-eki betik sonlandýrýlmasýna yol açacak + kritik hatalarýn bile gösterilmesini engelleyecektir. Diðer þeylerin + dýþýnda, bu demektir ki <link linkend="language.operators.errorcontrol">@</link> ön-ekini belli - fonksiyonlardan gelecek hataları bastırmak için kullanırsanız, ve bu - fonksiyonlar tanımlı değilse, betik nedeni belirtilmeden - sonlandırılacaktır. + fonksiyonlardan gelecek hatalarý bastýrmak için kullanýrsanýz, ve bu + fonksiyonlar tanýmlý deðilse, betik nedeni belirtilmeden + sonlandýrýlacaktýr. </para> </warning> <para> - Aþağıda PHP'deki hata kontrolü iþlemlerinin kullanımına iliþkin bir örnek - bulacaksınız. Burada bilgileri bir günlükte (XML formatıyla) saklayan ve - programcıya kritik hatalarda e-mail yollayan bir hata iþleme fonksiyonu tanımlıyoruz. + Aþaðýda PHP'deki hata kontrolü iþlemlerinin kullanýmýna iliþkin bir örnek + bulacaksýnýz. Burada bilgileri XML formatýnda bir günlükte saklayan ve + programcýya kritik hatalarda e-mail yollayan bir hata iþleme fonksiyonu tanýmlýyoruz. <example> - <title>Betik için hata iþlemenin kullanımı</title> + <title>Betik için hata iþlemenin kullanýmý</title> <programlisting role="php"> <![CDATA[ <?php @@ -281,12 +281,12 @@ ]]> </programlisting> </example> - Bu <link linkend="ref.errorfunc">Hata İþleme ve Günlük fonksiyonları</link> - hakkında basit bir örnek. + Bu <link linkend="ref.errorfunc">Hata Ýþleme ve Günlük fonksiyonlarý</link> + hakkýnda basit bir örnek. </para> <para> - Ayrıca bkz. <function>error_reporting</function>, + Ayrýca bkz. <function>error_reporting</function>, <function>error_log</function>, <function>set_error_handler</function>, <function>restore_error_handler</function>, Index: phpdoc/tr/features/persistent-connections.xml diff -u phpdoc/tr/features/persistent-connections.xml:1.1 phpdoc/tr/features/persistent-connections.xml:1.2 --- phpdoc/tr/features/persistent-connections.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/persistent-connections.xml Mon Dec 10 13:24:46 2001 @@ -1,117 +1,120 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.persistent-connections"> - <title>Kalıcı Veritabanı Bağlantıları</title> + <title>Kalýcý Veritabaný Baðlantýlarý</title> <simpara> - Kalıcı bağlantılar, betiğiniz sonlandığında kapatılmayan SQL bağlantılarına - denir. Kalıcı bir bağlantı istendiğinde, PHP daha önceden tamamen aynı - özelliklerde başka bir kalıcı bağlantı açılıp açılmadığına bakar (daha - önceden kalan) - ve eğer varsa, onu kullanır. Eğer yoksa, yeni bağlantıyı - yapar. 'Tamamen aynı' bağlantılar, aynı sunucuya, aynı kullanıcı ismi ve - şifreyle (gerekliyse) açılmış bağlantılardır. + Kalýcý baðlantýlar, betiðiniz sonlandýðýnda kapatýlmayan SQL baðlantýlarýna + denir. Kalýcý bir baðlantý istendiðinde, PHP daha önceden tamamen ayný + özelliklerde baþka bir kalýcý baðlantý açýlýp açýlmadýðýna bakar (daha + önceden kalan) - ve eðer varsa, onu kullanýr. Eðer yoksa, yeni baðlantý + kurar. 'Tamamen ayný' baðlantýlar, ayný sunucuya, ayný kullanýcý ismi ve + (gerekliyse) þifreyle açýlmýþ baðlantýlardýr. </simpara> <simpara> - HTTP sunucularının çalışma mantığına aşina olmayanlar, kalıcı bağlantıları - gerçekte olmadıkları şeyler sanabilirler. Özellikle, aynı SQL bağlantısı - üzerinde 'kullanıcı oturumları' <emphasis>açmazlar</emphasis>, - transaction'ları daha etkili bir şekilde yapmanızı - <emphasis>sağlamazlar</emphasis> ve başka pek çok şeyi gerçekleştirmezler. - Konu hakkında daha açık olmak gerekirse, kalıcı bağlantılar size kardeşleri - kalıcı olmayan bağlantıların sunmadığı hiç bir ek özellik + HTTP sunucularýnýn çalýþma mantýðýna aþina olmayanlar, kalýcý baðlantýlarý + gerçekte olmadýklarý þeyler sanabilirler. Özellikle, ayný SQL baðlantýsý + üzerinde 'kullanýcý oturumlarý' <emphasis>açmazlar</emphasis>, + transaction'larý daha etkili bir þekilde yapmanýzý + <emphasis>saðlamazlar</emphasis> ve baþka pek çok þeyi gerçekleþtirmezler. + Konu hakkýnda daha açýk olmak gerekirse, kalýcý baðlantýlar size kardeþleri + kalýcý olmayan baðlantýlarýn sunmadýðý hiç bir ek özellik <emphasis>sunmazlar</emphasis>. </simpara> <simpara> Neden? </simpara> <simpara> - Bu daha çok HTTP sunucularının çalışma mantığıyla alakalı. Sunucunun - PHP'yi kullanarak web sayfaları oluşturmasının üç yöntemi var. + Bu daha çok HTTP sunucularýnýn çalýþma mantýðýyla alakalý. Sunucunun + PHP'yi kullanarak web sayfalarý oluþturmasýnýn üç yöntemi var. </simpara> <simpara> - <!-- dirge: wrapper => sargı --> - İlk yöntem PHP'yi CGI "sargısı" olarak kullanmak. Bu şekilde çalıştığında, - sunucuya gelen her sayfa isteği için ayrı bir PHP yorumlayıcısı yaratılır - ve yokedilir (PHP sayfaları için). İşlemler sonunda yokedildikleri için, - yarattıkları her kaynak (SQL sunucusuna bağlantılar gibi) da onlarla - birlikte yokolur. Bu durumda, kalıcı bağlantılar kurmayı denemekle elinize - hiçbirşey geçmez -- basitçe, kalıcı olamazlar. - </simpara> - <simpara> - İkinci, ve en popüler, yöntem PHP'yi çok işlemli (multiprocess) bir - sunucuda modül olarak kullanmak, şu an sadece Apache'de olduğu gibi. Çok - işlemli bir sunucu genellikle bir ana işlemden (parent) ve onun kontrolündeki - gerçekte işlemleri yapan çocuk işlemlerden (children) oluşur. Ne zaman bir - alıcıdan istek gelse, o anda başka bir isteğe cevap vermeyen bir çocuk - işleme devredilir. Bu demektir ki, aynı alıcı ikinci bir istek yolladığında, - başka bir çocuk işlem tarafından karşılanabilir. Kalıcı bağlantıların - sizin için burada yaptığı iş, her çocuk işlemin sadece ilk seferde SQL - sunucusuna bağlanması. Başka bir sayfanın aynı bağlantıya duyması durumunda - önceden yapılmış bağlantı kullanılır. - </simpara> - <simpara> - <!-- dirge: thread => iş parçacığı --> - Son yöntem PHP'yi çok iş parçacıklı (multithreaded) sunucularda eklenti - olarak kullanmak. Şu anda PHP 4'ün Netscape FastTrack (iPlanet), Microsoft - Internet Information Server (IIS), ve O'Reilly Website Pro gibi çok iş - parçacıklı sunucularda çalışmasını sağlayan ISAPI, WSAIP, ve NSAPI - (Windows'ta) için desteği var. Bu çalışma şekli az önce anlatılan çok - işlemli modelle aynı. SAPI desteğinin PHP 3'te olmadığına dikkat edin. + <!-- dirge: wrapper => sargý --> + Ýlk yöntem PHP'yi CGI "sargýsý" olarak kullanmak. Bu þekilde çalýþtýðýnda, + sunucuya gelen her sayfa isteði için ayrý bir PHP yorumlayýcýsý yaratýlýr + ve yokedilir (PHP sayfalarý için). Ýþlemler sonunda yokedildikleri için, + yarattýklarý her kaynak da (SQL sunucusuna baðlantýlar gibi) onlarla + birlikte yokolur. Bu durumda, kalýcý baðlantýlar kurmayý denemekle elinize + hiçbirþey geçmez -- basitçe, kalýcý olamazlar. + </simpara> + <simpara> + <!-- dirge: multiprocess => çok iþlemli --> + Ýkinci, ve en popüler, yöntem PHP'yi çok iþlemli (multiprocess) bir + sunucuda modül olarak kullanmak, þu an sadece Apache'de olduðu gibi. Çok + iþlemli bir sunucu genellikle bir ana iþlemden (parent) ve onun kontrolündeki + gerçekte iþlemleri yapan çocuk iþlemlerden (children) oluþur. Ne zaman bir + alýcýdan istek gelse, istek o anda baþka bir isteðe cevap vermeyen bir çocuk + iþleme devredilir. Bu demektir ki, ayný alýcý ikinci bir istek yolladýðýnda, + baþka bir çocuk iþlem tarafýndan karþýlanabilir. Kalýcý baðlantýlarýn + sizin için burada yaptýðý iþ, her çocuk iþlemin sadece ilk seferde SQL + sunucusuna baðlanmasýdýr. Baþka bir sayfanýn ayný baðlantýya ihtiyaç duymasý + durumunda önceden kurulmuþ baðlantý kullanýlýr. + </simpara> + <simpara> + <!-- dirge: thread => iþ parçacýðý --> + Son yöntem PHP'yi çok iþ parçacýklý (multithreaded) sunucularda eklenti + olarak kullanmak. Þu anda PHP 4'ün Netscape FastTrack (iPlanet), Microsoft + Internet Information Server (IIS), ve O'Reilly Website Pro gibi çok iþ + parçacýklý sunucularda çalýþmasýný saðlayan ISAPI, WSAIP, ve NSAPI + (Windows'ta) için desteði var. Bu çalýþma þekli az önce anlatýlan çok + iþlemli modelle ayný. SAPI desteðinin PHP 3'te olmadýðýna dikkat edin. </simpara> <simpara> - Eğer kalıcı bağlantıların ek özellikleri yoksa, neye yararlar? + Eðer kalýcý baðlantýlarýn ek özellikleri yoksa, neye yararlar? </simpara> <simpara> <!-- dige: efficiency => etkinlik --> - Buradaki cevap oldukça basit -- etkinlik. Kalıcı bağlantılar, SQL - sunucunuza yeni bağlantı açmak performans açısından hesaplı değilse - çok işe yararlar. Performans hesaplılığı pek çok şeye bağlıdır. Örneğin, ne - tür bir veritabanı olduğu, HTTP sunucusuyla aynı bilgisayarda olup - olmayışı, SQL sunucusunun çalıştığı bilgisayarın işlem yoğunluğu ve - benzeri. Sonuç şu ki, yeni bağlantı performansı düşükse, kalıcı bağlantılar - işe yarar. Her çocuk işlemin her seferinde yeni bağlantı açması yerine - hayatı boyunca sadece bir kere bağlantı yapmasını ve sürekli onu kullanmasını - sağlarlar. Bu demektir ki, kalıcı bağlantı açan her çocuk işlemin SQL - sunucusuna kendine ait kalıcı bir bağlantısı olacaktır. Örneğin, 20 tane - kalıcı bağlantı açan betik çalıştırmış farklı çocuk işlem varsa, SQL - sunucusuna 20 tane bağlantı olacaktır, her çocuk işlemden bir tane. - </simpara> - <simpara> - Ancak dikkat edin ki, bunun SQL sunucusunun bağlantı limiti kalıcı - bağlantılarla aşıldığında bir takım götürüler olacaktır. Eğer veritabanı - sunucunuz ayni anda 16 bağlantıya izin veriyorsa, ve yoğun bir çalışma - anında 17 çocuk işlem kalıcı bağlantı açmaya kalkarsa, bunlardan biri - bağlantıyı açamaz. Eğer betiklerinizde bağlantıların kapanabilmesine olanak - tanımayan hatalar varsa (kısır döngü gibi), 32 bağlantıya izin verecek bir - veritabanı sunucusu çok çabuk bir şekilde kullanışsız hale gelir. Boş duran - (idle) bağlantılarla nasıl ilgileneceğiniz konusunda veritabanınızın - dökümanlarına başvurun. + Buradaki cevap oldukça basit -- etkinlik. Kalýcý baðlantýlar, SQL + sunucunuza yeni baðlantý açmak performans açýsýndan hesaplý deðilse + çok iþe yararlar. Performans hesaplýlýðý pek çok þeye baðlýdýr. Örneðin, ne + tür bir veritabaný olduðu, HTTP sunucusuyla ayný bilgisayarda olup + olmayýþý, SQL sunucusunun çalýþtýðý bilgisayarýn iþlem yoðunluðu ve + benzeri. Sonuç þu ki, yeni baðlantý performansý düþükse, kalýcý baðlantýlar + iþe yarar. Her çocuk iþlemin her seferinde yeni baðlantý açmasý yerine + hayatý boyunca sadece bir kere baðlantý yapmasýný ve sürekli onu kullanmasýný + saðlarlar. Bu demektir ki, kalýcý baðlantý açan her çocuk iþlemin kendisine + ait SQL sunucusuna kalýcý bir baðlantýsý olacaktýr. Örneðin, 20 tane + kalýcý baðlantý açan betik çalýþtýrmýþ farklý çocuk iþlem varsa, SQL + sunucusuna, her çocuk iþlemden bir tane olmak üzere, 20 tane baðlantý + olacaktýr. + </simpara> + <simpara> + Ancak dikkat edin ki, SQL sunucusunun baðlantý limiti kalýcý baðlantýlarla + aþýldýðýnda bunun bir takým götürüleri olacaktýr. Eðer veritabaný + sunucunuz ayni anda 16 baðlantýya izin veriyorsa, ve yoðun bir çalýþma + anýnda 17 çocuk iþlem kalýcý baðlantý açmaya kalkarsa, bunlardan biri + baðlantýyý açamaz. Eðer betiklerinizde baðlantýlarýn kapanabilmesine olanak + tanýmayan hatalar varsa (kýsýr döngüler gibi), 32 baðlantýya izin veren bir + veritabaný sunucusu çok çabuk bir þekilde kullaným dýþý olur. Boþ duran + (idle) baðlantýlarla nasýl ilgileneceðiniz konusunda veritabanýnýzýn + dökümanlarýna baþvurun. </simpara> <warning> <simpara> - Kalıcı bağlantı kullanırken akılda tutulması gereken birkaç ek götürü daha - var. Örneğin kalıcı bir bağlantıyla bir tablo kitlendiyse (LOCK), ve betik - herhangi bir sebepten dolayı kilidi kaldıramıyorsa, ardısıra gelen - ve aynı bağlantıyı kullanacak betikler süresiz olarak bloke olacak, ve - sizin ya HTTP sunucusunu ya da veritabanı sunucusunu baştan çalıştırmanız - gerekecektir. Başka bir götürü transaction kullanırken oluşabilir. Bir - transaction bloğu, betiğin çalışma süresi bloğun ömründen kisaysa, bir - sonraki betiğe taşınacaktır. İki durumda da + <!-- dirge: register => kaydetmek --> + Kalýcý baðlantý kullanýrken akýlda tutulmasý gereken birkaç ek götürü daha + var. Örneðin kalýcý bir baðlantý üzerinden bir tablo kitlendiyse (LOCK), + ve betik herhangi bir sebepten dolayý kilidi kaldýramýyorsa, ardýsýra gelen + ve ayný baðlantýyý kullanacak betikler süresiz olarak bloke olacak, ve + sizin ya HTTP sunucusunu ya da veritabaný sunucusunu baþtan çalýþtýrmanýz + gerekecektir. Baþka bir götürü transaction kullanýrken oluþabilir. Bir + transaction bloðu, betiðin çalýþma süresi bloðun ömründen kisaysa, bir + sonraki betiðe taþýnacaktýr. Ýki durumda da <function>register_shutdown_function</function> ile transaction'i geri - alacak ya da tablo kilitlerini kaldıracak bir temizlik fonksiyonu + alacak ya da tablo kilitlerini kaldýracak bir temizlik fonksiyonu kaydedebilirsiniz. Daha iyisi, problemleri tümüyle önlemek için tablo - kilitleri veya transaction kullanan betiklerde kalıcı bağlantıları - kullanmamak (başka yerlerde hala kullanabilirsiniz). + kilitleri veya transaction kullanan betiklerde kalýcý baðlantýlarý + kullanmamaktýr (baþka yerlerde hala kullanabilirsiniz). </simpara> </warning> <simpara> - Önemli bir özet. Kalıcı bağlantılar normal bağlantılarla birebir - eşlenebilecek şekilde tasarlandı. Bu demektir ki <emphasis>her - zaman</emphasis> kalıcı bağlantıları normal olanlarla değiştirebilirsiniz, - ve bu betiklerin davranışlarını etkilemeyecektir. Betiklerin etkinliklerini - <emphasis>belki</emphasis> değiştirebilirler, fakat davranışını - değiştirmezler! + Önemli bir özet. Kalýcý baðlantýlar normal baðlantýlarla birebir + eþlenebilecek þekilde tasarlandý. Bu demektir ki <emphasis>her + zaman</emphasis> kalýcý baðlantýlarý normal olanlarla deðiþtirebilirsiniz, + ve bu betiklerin davranýþlarýný etkilemeyecektir. Betiklerin etkinliklerini + <emphasis>belki</emphasis> deðiþtirebilirler, fakat davranýþýný + deðiþtirmezler! </simpara> </chapter> Index: phpdoc/tr/features/remote-files.xml diff -u phpdoc/tr/features/remote-files.xml:1.1 phpdoc/tr/features/remote-files.xml:1.2 --- phpdoc/tr/features/remote-files.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/remote-files.xml Mon Dec 10 13:24:46 2001 @@ -1,45 +1,46 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.remote-files"> - <title>Uzaktaki Dosyaları Kullanmak</title> + <title>Uzaktaki Dosyalarý Kullanmak</title> + <!-- dirge: remote file => uzak dosya --> <para> - "URL fopen wrapper" PHP derlenmeden önce aktifleştirildiği (ki, - --disable-url-fopen-wrapper parametresini özellikle vermediğinizde + "URL fopen wrapper" PHP derlenmeden önce aktifleþtirildiði (ki, + --disable-url-fopen-wrapper parametresini özellikle vermediðinizde böyledir) (4.0.3 öncesi sürümler için) veya php.ini'de - <parameter>allow_url_fopen</parameter> ayarına off değerini vermediyseniz + <parameter>allow_url_fopen</parameter> ayarýna off deðerini vermediðiniz (yeni sürümler için) sürece, HTTP ve FTP URL'lerini parametre olarak - dosya ismi alan çoğu fonksiyonda, <function>require</function> ve - <function>include</function> ifadeleri dahil, kullanabilirsiniz. + dosya ismi alan, <function>require</function> ve + <function>include</function> ifadeleri dahil, çoðu fonksiyonda kullanabilirsiniz. </para> <para> <note> <para> - Uzak dosyaları Windows altında <function>include</function> ve - <function>require</function> ifadelerinde kullanamazsınız. + Uzak dosyalarý Windows altýnda <function>include</function> ve + <function>require</function> ifadelerinde kullanamazsýnýz. </para> </note> </para> <para> - Örneğin, bunu uzaktaki bir HTTP sunucusunda olan bir dosyayı açmak, - çıktısını ayıklamak ve elde edilen bilgiyi bir veritabanı sorgusunda - kullanmak, ya da basitçe web sitenizin geri kalanına uygun bir görüntüde + Örneðin, bunu uzaktaki bir HTTP sunucusunda olan bir dosyayý açmak, + çýktýsýný ayýklamak ve elde edilen bilgiyi bir veritabaný sorgusunda + kullanmak, ya da basitçe web sitenizin geri kalanýna uygun bir görüntüde göstermek için kullanabilirsiniz. </para> <para> <example> - <title>Uzaktaki bir sayfanın başlığını almak</title> + <title>Uzaktaki bir sayfanýn baþlýðýný almak</title> <programlisting role="php"> <![CDATA[ <?php $file = fopen ("http://www.php.net/", "r"); if (!$file) { - echo "<p>Uzaktaki dosya açılamadı.\n"; + echo "<p>Uzaktaki dosya açýlamadý.\n"; exit; } while (!feof ($file)) { $line = fgets ($file, 1024); - /* Bu sadece title etiketi ve içeriği aynı satırdaysa işe yarar */ + /* Bu sadece title etiketi ve içeriði ayný satýrdaysa iþe yarar */ if (eregi ("<title>(.*)</title>", $line, $out)) { $title = $out[1]; break; @@ -52,12 +53,12 @@ </example> </para> <para> - Ya da bunu, doğru erişim hakkına sahip bir kullanıcıyla bağlandığınız - ve çoktan dosya varolmadığı sürece FTP ile uzaktaki dosyalara yazmak - için kullanabilirsiniz. 'anonymous' dışında bir kullanıcı olarak bağlanmak - için kullanıcıyı (ve muhtemelen parolayı) URL içine yazmalısınız, örneğin - 'ftp://kullanıcı:parola@ftp.example.com/yol/dosya' gibi. (Aynı yöntemi - HTTP'de Basic Authentication'a ihtiyaç duyan dosyalara erişmek için de + Ya da bunu, doðru eriþim hakkýna sahip bir kullanýcýyla baðlandýðýnýz + ve çoktan dosya varolmadýðý sürece FTP ile uzaktaki dosyalara yazmak + için kullanabilirsiniz. 'anonymous' dýþýnda bir kullanýcý olarak baðlanmak + için kullanýcýyý (ve muhtemelen parolayý) URL içine yazmalýsýnýz, örneðin + 'ftp://kullanýcý:parola@ftp.example.com/yol/dosya' gibi. (Ayný yöntemi + HTTP'de Basic Authentication'a ihtiyaç duyan dosyalara eriþmek için de kullanabilirsiniz.) </para> <para> @@ -68,7 +69,7 @@ <?php $file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w"); if (!$file) { - echo "<p>Yazmak üzere uzak dosya açılamadı\n"; + echo "<p>Yazmak üzere uzak dosya açýlamadý\n"; exit; } /* Veriyi yaz */ @@ -82,11 +83,11 @@ <para> <note> <para> - Yukarıdaki örnekten, uzaktaki bir günlüğe yazmak için nasıl bir teknik - kullanacağınız konusunda bir fikir almışsınızdır, fakat önceden - belirtildiği gibi, URL fopen() sargılarıyla sadece yeni dosyalara - yazabilirsiniz. Bunun gibi dağıtılmış günlük tutmak isterseniz, - <function>syslog</function>'s bir göz atmalısınız. + Yukarýdaki örnekten, uzaktaki bir günlüðe yazmak için nasýl bir teknik + kullanacaðýnýz konusunda bir fikir almýþsýnýzdýr, fakat önceden + belirtildiði gibi, URL fopen() sargýlarýyla sadece yeni dosyalara + yazabilirsiniz. Bunun gibi daðýtýlmýþ günlük tutmak isterseniz, + <function>syslog</function>'a bir göz atmalýsýnýz. </para> </note> </para>
Index: phpdoc/tr/features/connection-handling.xml diff -u phpdoc/tr/features/connection-handling.xml:1.1 phpdoc/tr/features/connection-handling.xml:1.2 --- phpdoc/tr/features/connection-handling.xml:1.1 Sun Dec 9 17:39:42 2001 +++ phpdoc/tr/features/connection-handling.xml Mon Dec 10 13:24:46 2001 @@ -1,81 +1,81 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.1 $ --> +<?xml version="1.0" encoding="iso-8859-9"?> +<!-- $Revision: 1.2 $ --> <chapter id="features.connection-handling"> - <!-- dirge: handling => isleme --> - <title>Bağlantı İşleme</title> + <!-- dirge: handling => iþleme --> + <title>Baðlantý Ýþleme</title> - <note> - <para>Burada yazanlar 3.0.7 ve sonrası sürümler için geçerlidir.</para> - </note> - - <para> - PHP'nin içinde bağlantı durumu muhafaza edilir. 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 durumu anahtarı aktifleştirilir. Alıcı - tarafın bağlantıyı kesmesi genellikle uzak 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, TIMEOUT durum anahtarı - aktifleştirilir. - </simpara> - - <simpara> - Alıcının bağlantıyı kesmesi durumunda PHP betiğinin çalışmasının durdurulup - durdurulmayacağını seçebilirsiniz. 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ğı - için, sadece bağlantının kesilmesi durumunda yapılmasını istediğiniz işler - varsa <function>connection_aborted</function> fonksiyonunu - kullanabilirsiniz. Bu fonksiyon bağlantı kesilmişse &true; değerini - döndürecektir. - </simpara> - - <simpara> - Betiğiniz ayrıca yerleşik betik süre-ölçeri 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 sürenin 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 içinde, - çağrılmasının sebebinin süre dolması olup olmadığını öğrenmek isterseniz - <function>connection_timeout</function> fonksiyonunu kullanabilirsiniz. Bu - fonksiyon sürenin dolmuş olması durumunda &true; değerini döndürecektir. - </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ı gözardı etmesini söylerseniz mümkün olur. PHP'nin - bağlantının kapandığını anlamasına rağmen betik çalışmaya devam edecektir. - Süre 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 - döndürür. İki durumu aynı anda <function>connection_status</function> - fonksiyonu ile kontrol edebilirsiniz. Bu fonksiyon aktif durumları içeren - bit alanını döndürür. Örneğin, iki durum da aktifse geriye dönüş değeri - olarak 3'ü verecektir. - </simpara> - - </chapter> + <note> + <para>Burada yazanlar 3.0.7 ve sonrasý sürümler için geçerlidir.</para> + </note> + + <para> + PHP'nin içinde 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 => döndürmek --> + <!-- dirge: directive => direktif --> + Alýcýnýn baðlantýyý kesmesi durumunda PHP betiðinin çalýþmasýnýn durdurulup + durdurulmayacaðýný seçebilirsiniz. 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ðý + için, 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 + döndürecektir. + </simpara> + + <simpara> + Betiðiniz ayrýca yerleþik betik süre-ölçeri 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 sürenin 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 içinde, + çaðrýlmasýnýn sebebinin süre dolmasý olup olmadýðýný öðrenmek isterseniz + <function>connection_timeout</function> fonksiyonunu kullanabilirsiniz. Bu + fonksiyon sürenin dolmuþ olmasý durumunda &true; deðerini döndürecektir. + </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ý gözardý etmesini söylerseniz mümkün olur. PHP'nin + baðlantýnýn kapandýðýný anlamasýna raðmen betik çalýþmaya devam edecektir. + Süre 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 + döndürür. Ýki durumu ayný anda <function>connection_status</function> + fonksiyonu ile kontrol edebilirsiniz. Bu fonksiyon aktif durumlarý içeren + bit alanýný döndürür. Örneðin, iki durum da aktifse geriye dönüþ deðeri + olarak 3'ü verecektir. + </simpara> +</chapter> <!-- Keep this comment at the end of the file Local variables: Index: phpdoc/tr/features/error-handling.xml diff -u phpdoc/tr/features/error-handling.xml:1.1 phpdoc/tr/features/error-handling.xml:1.2 --- phpdoc/tr/features/error-handling.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/error-handling.xml Mon Dec 10 13:24:46 2001 @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.error-handling"> - <title>Hata İþlemleri</title> + <title>Hata Ýþlemleri</title> <para> - PHP'de pek çok uyarı çeþidi vardır. Bunlar: + PHP'de pek çok uyarý çeþidi vardýr. Bunlar: <table> - <title>PHP uyarı çeþitleri</title> + <title>PHP uyarý çeþitleri</title> <tgroup cols="4"> <thead> <row> - <entry>Değer</entry> + <entry>Deðer</entry> <entry>Sabit</entry> - <entry>Tanım</entry> + <entry>Taným</entry> <entry>Not</entry> </row> </thead> @@ -21,40 +21,40 @@ <row> <entry>1</entry> <entry>E_ERROR</entry> - <entry>hayati çalıþma hataları</entry> + <entry>hayati çalýþma hatalarý</entry> <entry></entry> </row> <row> <entry>2</entry> <entry>E_WARNING</entry> - <entry>çalıþma uyarıları (hayati olmayan hatalar)</entry> + <entry>çalýþma uyarýlarý (hayati olmayan hatalar)</entry> <entry></entry> </row> <row> <entry>4</entry> <entry>E_PARSE</entry> - <entry>derleme sırasında ayrıþtırma hataları</entry> + <entry>derleme sýrasýnda ayrýþtýrma hatalarý</entry> <entry></entry> </row> <row> <entry>8</entry> <entry>E_NOTICE </entry> <entry> - çalıþma sırasındaki bildirimler (uyarılardan daha az önemli) + çalýþma sýrasýndaki bildirimler (uyarýlardan daha az önemli) </entry> <entry></entry> </row> <row> <entry>16</entry> <entry>E_CORE_ERROR</entry> - <entry>PHP'nin iç yapısıyla ilgili, baþlatılmasını engelleyen hayati hatalar</entry> + <entry>PHP'nin iç yapýsýyla ilgili, baþlatýlmasýný engelleyen hayati hatalar</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>32</entry> <entry>E_CORE_WARNING</entry> <entry> - PHP'nin iç yapısıyla ilgili, baþlatılması ile ilgili uyarılar (hayati olmayan + PHP'nin iç yapýsýyla ilgili, baþlatýlmasý ile ilgili uyarýlar (hayati olmayan hatalar) </entry> <entry>sadece PHP 4</entry> @@ -62,37 +62,37 @@ <row> <entry>64</entry> <entry>E_COMPILE_ERROR</entry> - <entry>hayati derleme hataları</entry> + <entry>hayati derleme hatalarý</entry> <entry>Sadece PHP 4</entry> </row> <row> <entry>128</entry> <entry>E_COMPILE_WARNING</entry> - <entry>derleme sırasındaki uyarılar (hayati olmayan hatalar)</entry> + <entry>derleme sýrasýndaki uyarýlar (hayati olmayan hatalar)</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>256</entry> <entry>E_USER_ERROR</entry> - <entry>kullanıcının yarattığı hata mesajı</entry> + <entry>kullanýcýnýn yarattýðý hata mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>512</entry> <entry>E_USER_WARNING</entry> - <entry>kullanıcının yarattığı uyarı mesajı</entry> + <entry>kullanýcýnýn yarattýðý uyarý mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry>1024</entry> <entry>E_USER_NOTICE </entry> - <entry>kullanıcının yarattığı bildiri mesajı</entry> + <entry>kullanýcýnýn yarattýðý bildiri mesajý</entry> <entry>sadece PHP 4</entry> </row> <row> <entry></entry> <entry>E_ALL</entry> - <entry>desteklendiği sürece, yukarıdakilerin hepsi</entry> + <entry>desteklendikleri sürece, yukarýdakilerin hepsi</entry> <entry></entry> </row> </tbody> @@ -101,82 +101,82 @@ </para> <para> - Yukarıdaki değerler (sayısal veya sembolik) hangi hataların bildirileceğini - belirleyen bit maskesini oluþtururken kullanılır. Bu değerleri - birleþtirmeyi veya bazılarını maskelemeyi - <link linkend="language.operators.bitwise">bit-tabanlı iþlemler</link> ile + Yukarýdaki deðerler (sayýsal veya sembolik) hangi hatalarýn bildirileceðini + belirleyen bit maskesini oluþtururken kullanýlýr. Bu deðerleri + birleþtirmeyi veya bazýlarýný maskelemeyi + <link linkend="language.operators.bitwise">bit-tabanlý iþlemler</link> ile yapabilirsiniz. <filename>php.ini</filename> içinde sadece '|', '~', '!' ve - '&' iþlemlerinin anlaþılacağına, ve <filename>php3.ini</filename> - içinde hiçbirinin anlaþılmayacağına dikkat edin. + '&' iþlemlerinin anlaþýlacaðýna, ve <filename>php3.ini</filename> + içinde hiçbirinin anlaþýlmayacaðýna dikkat edin. </para> <para> - PHP 4'te öntanımlı <link - linkend="ini.error-reporting">error_reporting</link> değeri <literal>E_ALL - & ~E_NOTICE</literal>'dir ve anlamı E-NOTICE-seviyesi dıþındaki tüm - hataların ve uyarıların bildirilmesidir. PHP 3'de öntanımlı ayar - <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>'dır ve anlamı öncekiyle - aynıdır. Fakat dikkat edin ki, PHP 3'ün <filename>php3.ini</filename> - dosyasında sabitler desteklenmediğinden <link - linkend="ini.error-reporting">error_reporting</link> ayarı sayısal olmak - durumundadır; az önce belirtilen değer de <literal>7</literal>'ye denk + PHP 4'te öntanýmlý <link + linkend="ini.error-reporting">error_reporting</link> deðeri <literal>E_ALL + & ~E_NOTICE</literal>'dir ve anlamý E-NOTICE-seviyesi dýþýndaki tüm + hatalarýn ve uyarýlarýn bildirilmesidir. PHP 3'de öntanýmlý ayar + <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>'dýr ve anlamý öncekiyle + aynýdýr. Fakat dikkat edin ki, PHP 3'ün <filename>php3.ini</filename> + dosyasýnda sabitler desteklenmediðinden <link + linkend="ini.error-reporting">error_reporting</link> ayarý sayýsal olmak + durumundadýr; az önce belirtilen deðer de <literal>7</literal>'ye denk gelir. </para> <para> - Baþlangıç değeri ini dosyasında <link - linkend="ini.error-reporting">error_reporting</link> direktifyle, - Apache'nizin <filename>httpd.conf</filename> dosyasında php_error_reporting - (PHP 3 için php3_error_reporting) direktifiyle, ve son olarak çalıþma - esnasında betik içinden <function>error_reporting</function> fonksiyonuyla + Baþlangýç deðeri ini dosyasýnda <link + linkend="ini.error-reporting">error_reporting</link> direktifiyle, + Apache'nizin <filename>httpd.conf</filename> dosyasýnda php_error_reporting + (PHP 3 için php3_error_reporting) direktifiyle, ve son olarak çalýþma + esnasýnda betik içinden <function>error_reporting</function> fonksiyonuyla belirlenebilir. </para> <warning> <para> - Sunucularınızı veya kodlarınızı PHP 3'ten PHP 4'e yükseltirken bu ayarları - ve <function>error_reporting</function> fonksiyonu çağrımlarını kontrol - etmelisiniz yoksa istemeyerek yeni hata çeþitlerinin bildirimlerini - kapatabilirsiniz, özellikle E_COMPILE_ERROR. Bu hatanın ne ve nerede - olduğuna dair hiç bir bilgi bırakmadan betiklerinizin tamamiyle boþ + Sunucularýnýzý veya kodlarýnýzý PHP 3'ten PHP 4'e güncellerken bu ayarlarý + ve <function>error_reporting</function> fonksiyonu çaðrýmlarýný kontrol + etmelisiniz, yoksa istemeyerek yeni hata çeþitlerinin bildirimlerini + kapatabilirsiniz, özellikle E_COMPILE_ERROR'u. Bu, hatanýn ne ve nerede + olduðuna dair hiç bir bilgi býrakmadan betiklerinizin tamamiyle boþ sayfalar üretmesine yolaçabilir. </para> </warning> <para> - Tüm <link linkend="language.expressions">PHP ifadeler</link> @ ön-ekiyle - çağrılabilir. Bu ön-ek, o ifade için hata bildirimini kapatacaktır. Eğer - böyle bir ifade sırasında hata oluþursa, ve <link - linkend="ini.track-errors">track_errors</link> özelliği aktifse, hata - mesajını <literal>$php_errormsg</literal> genel değiþkeninde + Tüm <link linkend="language.expressions">PHP ifadeleri</link> @ ön-ekiyle + çaðrýlabilir. Bu ön-ek, o ifade için hata bildirimini kapatacaktýr. Eðer + böyle bir ifade sýrasýnda hata oluþursa, ve <link + linkend="ini.track-errors">track_errors</link> özelliði aktifse, hata + mesajýný <literal>$php_errormsg</literal> genel deðiþkeninde bulabilirsiniz. </para> <note> <para> <link linkend="language.operators.errorcontrol">@ hata-kontrol - iþlemi</link> ön-eki ayrıþtırma hatalarını kapatmayacaktır. + iþlemi</link> ön-eki, ayrýþtýrma hatalarýný kapatmayacaktýr. </para> </note> <warning> <para> - Şu an için <link linkend="language.operators.errorcontrol">@ - hata-kontrol iþlemi</link> ön eki betik sonlandırılmasına yol açacak - kritik hataların bile gösterilmesini engelleyecektir. Diğer þeylerin - dıþında, bu demektir ki <link + Þu an için <link linkend="language.operators.errorcontrol">@ + hata-kontrol iþlemi</link> ön-eki betik sonlandýrýlmasýna yol açacak + kritik hatalarýn bile gösterilmesini engelleyecektir. Diðer þeylerin + dýþýnda, bu demektir ki <link linkend="language.operators.errorcontrol">@</link> ön-ekini belli - fonksiyonlardan gelecek hataları bastırmak için kullanırsanız, ve bu - fonksiyonlar tanımlı değilse, betik nedeni belirtilmeden - sonlandırılacaktır. + fonksiyonlardan gelecek hatalarý bastýrmak için kullanýrsanýz, ve bu + fonksiyonlar tanýmlý deðilse, betik nedeni belirtilmeden + sonlandýrýlacaktýr. </para> </warning> <para> - Aþağıda PHP'deki hata kontrolü iþlemlerinin kullanımına iliþkin bir örnek - bulacaksınız. Burada bilgileri bir günlükte (XML formatıyla) saklayan ve - programcıya kritik hatalarda e-mail yollayan bir hata iþleme fonksiyonu tanımlıyoruz. + Aþaðýda PHP'deki hata kontrolü iþlemlerinin kullanýmýna iliþkin bir örnek + bulacaksýnýz. Burada bilgileri XML formatýnda bir günlükte saklayan ve + programcýya kritik hatalarda e-mail yollayan bir hata iþleme fonksiyonu tanýmlýyoruz. <example> - <title>Betik için hata iþlemenin kullanımı</title> + <title>Betik için hata iþlemenin kullanýmý</title> <programlisting role="php"> <![CDATA[ <?php @@ -281,12 +281,12 @@ ]]> </programlisting> </example> - Bu <link linkend="ref.errorfunc">Hata İþleme ve Günlük fonksiyonları</link> - hakkında basit bir örnek. + Bu <link linkend="ref.errorfunc">Hata Ýþleme ve Günlük fonksiyonlarý</link> + hakkýnda basit bir örnek. </para> <para> - Ayrıca bkz. <function>error_reporting</function>, + Ayrýca bkz. <function>error_reporting</function>, <function>error_log</function>, <function>set_error_handler</function>, <function>restore_error_handler</function>, Index: phpdoc/tr/features/persistent-connections.xml diff -u phpdoc/tr/features/persistent-connections.xml:1.1 phpdoc/tr/features/persistent-connections.xml:1.2 --- phpdoc/tr/features/persistent-connections.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/persistent-connections.xml Mon Dec 10 13:24:46 2001 @@ -1,117 +1,120 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.persistent-connections"> - <title>Kalıcı Veritabanı Bağlantıları</title> + <title>Kalýcý Veritabaný Baðlantýlarý</title> <simpara> - Kalıcı bağlantılar, betiğiniz sonlandığında kapatılmayan SQL bağlantılarına - denir. Kalıcı bir bağlantı istendiğinde, PHP daha önceden tamamen aynı - özelliklerde başka bir kalıcı bağlantı açılıp açılmadığına bakar (daha - önceden kalan) - ve eğer varsa, onu kullanır. Eğer yoksa, yeni bağlantıyı - yapar. 'Tamamen aynı' bağlantılar, aynı sunucuya, aynı kullanıcı ismi ve - şifreyle (gerekliyse) açılmış bağlantılardır. + Kalýcý baðlantýlar, betiðiniz sonlandýðýnda kapatýlmayan SQL baðlantýlarýna + denir. Kalýcý bir baðlantý istendiðinde, PHP daha önceden tamamen ayný + özelliklerde baþka bir kalýcý baðlantý açýlýp açýlmadýðýna bakar (daha + önceden kalan) - ve eðer varsa, onu kullanýr. Eðer yoksa, yeni baðlantý + kurar. 'Tamamen ayný' baðlantýlar, ayný sunucuya, ayný kullanýcý ismi ve + (gerekliyse) þifreyle açýlmýþ baðlantýlardýr. </simpara> <simpara> - HTTP sunucularının çalışma mantığına aşina olmayanlar, kalıcı bağlantıları - gerçekte olmadıkları şeyler sanabilirler. Özellikle, aynı SQL bağlantısı - üzerinde 'kullanıcı oturumları' <emphasis>açmazlar</emphasis>, - transaction'ları daha etkili bir şekilde yapmanızı - <emphasis>sağlamazlar</emphasis> ve başka pek çok şeyi gerçekleştirmezler. - Konu hakkında daha açık olmak gerekirse, kalıcı bağlantılar size kardeşleri - kalıcı olmayan bağlantıların sunmadığı hiç bir ek özellik + HTTP sunucularýnýn çalýþma mantýðýna aþina olmayanlar, kalýcý baðlantýlarý + gerçekte olmadýklarý þeyler sanabilirler. Özellikle, ayný SQL baðlantýsý + üzerinde 'kullanýcý oturumlarý' <emphasis>açmazlar</emphasis>, + transaction'larý daha etkili bir þekilde yapmanýzý + <emphasis>saðlamazlar</emphasis> ve baþka pek çok þeyi gerçekleþtirmezler. + Konu hakkýnda daha açýk olmak gerekirse, kalýcý baðlantýlar size kardeþleri + kalýcý olmayan baðlantýlarýn sunmadýðý hiç bir ek özellik <emphasis>sunmazlar</emphasis>. </simpara> <simpara> Neden? </simpara> <simpara> - Bu daha çok HTTP sunucularının çalışma mantığıyla alakalı. Sunucunun - PHP'yi kullanarak web sayfaları oluşturmasının üç yöntemi var. + Bu daha çok HTTP sunucularýnýn çalýþma mantýðýyla alakalý. Sunucunun + PHP'yi kullanarak web sayfalarý oluþturmasýnýn üç yöntemi var. </simpara> <simpara> - <!-- dirge: wrapper => sargı --> - İlk yöntem PHP'yi CGI "sargısı" olarak kullanmak. Bu şekilde çalıştığında, - sunucuya gelen her sayfa isteği için ayrı bir PHP yorumlayıcısı yaratılır - ve yokedilir (PHP sayfaları için). İşlemler sonunda yokedildikleri için, - yarattıkları her kaynak (SQL sunucusuna bağlantılar gibi) da onlarla - birlikte yokolur. Bu durumda, kalıcı bağlantılar kurmayı denemekle elinize - hiçbirşey geçmez -- basitçe, kalıcı olamazlar. - </simpara> - <simpara> - İkinci, ve en popüler, yöntem PHP'yi çok işlemli (multiprocess) bir - sunucuda modül olarak kullanmak, şu an sadece Apache'de olduğu gibi. Çok - işlemli bir sunucu genellikle bir ana işlemden (parent) ve onun kontrolündeki - gerçekte işlemleri yapan çocuk işlemlerden (children) oluşur. Ne zaman bir - alıcıdan istek gelse, o anda başka bir isteğe cevap vermeyen bir çocuk - işleme devredilir. Bu demektir ki, aynı alıcı ikinci bir istek yolladığında, - başka bir çocuk işlem tarafından karşılanabilir. Kalıcı bağlantıların - sizin için burada yaptığı iş, her çocuk işlemin sadece ilk seferde SQL - sunucusuna bağlanması. Başka bir sayfanın aynı bağlantıya duyması durumunda - önceden yapılmış bağlantı kullanılır. - </simpara> - <simpara> - <!-- dirge: thread => iş parçacığı --> - Son yöntem PHP'yi çok iş parçacıklı (multithreaded) sunucularda eklenti - olarak kullanmak. Şu anda PHP 4'ün Netscape FastTrack (iPlanet), Microsoft - Internet Information Server (IIS), ve O'Reilly Website Pro gibi çok iş - parçacıklı sunucularda çalışmasını sağlayan ISAPI, WSAIP, ve NSAPI - (Windows'ta) için desteği var. Bu çalışma şekli az önce anlatılan çok - işlemli modelle aynı. SAPI desteğinin PHP 3'te olmadığına dikkat edin. + <!-- dirge: wrapper => sargý --> + Ýlk yöntem PHP'yi CGI "sargýsý" olarak kullanmak. Bu þekilde çalýþtýðýnda, + sunucuya gelen her sayfa isteði için ayrý bir PHP yorumlayýcýsý yaratýlýr + ve yokedilir (PHP sayfalarý için). Ýþlemler sonunda yokedildikleri için, + yarattýklarý her kaynak da (SQL sunucusuna baðlantýlar gibi) onlarla + birlikte yokolur. Bu durumda, kalýcý baðlantýlar kurmayý denemekle elinize + hiçbirþey geçmez -- basitçe, kalýcý olamazlar. + </simpara> + <simpara> + <!-- dirge: multiprocess => çok iþlemli --> + Ýkinci, ve en popüler, yöntem PHP'yi çok iþlemli (multiprocess) bir + sunucuda modül olarak kullanmak, þu an sadece Apache'de olduðu gibi. Çok + iþlemli bir sunucu genellikle bir ana iþlemden (parent) ve onun kontrolündeki + gerçekte iþlemleri yapan çocuk iþlemlerden (children) oluþur. Ne zaman bir + alýcýdan istek gelse, istek o anda baþka bir isteðe cevap vermeyen bir çocuk + iþleme devredilir. Bu demektir ki, ayný alýcý ikinci bir istek yolladýðýnda, + baþka bir çocuk iþlem tarafýndan karþýlanabilir. Kalýcý baðlantýlarýn + sizin için burada yaptýðý iþ, her çocuk iþlemin sadece ilk seferde SQL + sunucusuna baðlanmasýdýr. Baþka bir sayfanýn ayný baðlantýya ihtiyaç duymasý + durumunda önceden kurulmuþ baðlantý kullanýlýr. + </simpara> + <simpara> + <!-- dirge: thread => iþ parçacýðý --> + Son yöntem PHP'yi çok iþ parçacýklý (multithreaded) sunucularda eklenti + olarak kullanmak. Þu anda PHP 4'ün Netscape FastTrack (iPlanet), Microsoft + Internet Information Server (IIS), ve O'Reilly Website Pro gibi çok iþ + parçacýklý sunucularda çalýþmasýný saðlayan ISAPI, WSAIP, ve NSAPI + (Windows'ta) için desteði var. Bu çalýþma þekli az önce anlatýlan çok + iþlemli modelle ayný. SAPI desteðinin PHP 3'te olmadýðýna dikkat edin. </simpara> <simpara> - Eğer kalıcı bağlantıların ek özellikleri yoksa, neye yararlar? + Eðer kalýcý baðlantýlarýn ek özellikleri yoksa, neye yararlar? </simpara> <simpara> <!-- dige: efficiency => etkinlik --> - Buradaki cevap oldukça basit -- etkinlik. Kalıcı bağlantılar, SQL - sunucunuza yeni bağlantı açmak performans açısından hesaplı değilse - çok işe yararlar. Performans hesaplılığı pek çok şeye bağlıdır. Örneğin, ne - tür bir veritabanı olduğu, HTTP sunucusuyla aynı bilgisayarda olup - olmayışı, SQL sunucusunun çalıştığı bilgisayarın işlem yoğunluğu ve - benzeri. Sonuç şu ki, yeni bağlantı performansı düşükse, kalıcı bağlantılar - işe yarar. Her çocuk işlemin her seferinde yeni bağlantı açması yerine - hayatı boyunca sadece bir kere bağlantı yapmasını ve sürekli onu kullanmasını - sağlarlar. Bu demektir ki, kalıcı bağlantı açan her çocuk işlemin SQL - sunucusuna kendine ait kalıcı bir bağlantısı olacaktır. Örneğin, 20 tane - kalıcı bağlantı açan betik çalıştırmış farklı çocuk işlem varsa, SQL - sunucusuna 20 tane bağlantı olacaktır, her çocuk işlemden bir tane. - </simpara> - <simpara> - Ancak dikkat edin ki, bunun SQL sunucusunun bağlantı limiti kalıcı - bağlantılarla aşıldığında bir takım götürüler olacaktır. Eğer veritabanı - sunucunuz ayni anda 16 bağlantıya izin veriyorsa, ve yoğun bir çalışma - anında 17 çocuk işlem kalıcı bağlantı açmaya kalkarsa, bunlardan biri - bağlantıyı açamaz. Eğer betiklerinizde bağlantıların kapanabilmesine olanak - tanımayan hatalar varsa (kısır döngü gibi), 32 bağlantıya izin verecek bir - veritabanı sunucusu çok çabuk bir şekilde kullanışsız hale gelir. Boş duran - (idle) bağlantılarla nasıl ilgileneceğiniz konusunda veritabanınızın - dökümanlarına başvurun. + Buradaki cevap oldukça basit -- etkinlik. Kalýcý baðlantýlar, SQL + sunucunuza yeni baðlantý açmak performans açýsýndan hesaplý deðilse + çok iþe yararlar. Performans hesaplýlýðý pek çok þeye baðlýdýr. Örneðin, ne + tür bir veritabaný olduðu, HTTP sunucusuyla ayný bilgisayarda olup + olmayýþý, SQL sunucusunun çalýþtýðý bilgisayarýn iþlem yoðunluðu ve + benzeri. Sonuç þu ki, yeni baðlantý performansý düþükse, kalýcý baðlantýlar + iþe yarar. Her çocuk iþlemin her seferinde yeni baðlantý açmasý yerine + hayatý boyunca sadece bir kere baðlantý yapmasýný ve sürekli onu kullanmasýný + saðlarlar. Bu demektir ki, kalýcý baðlantý açan her çocuk iþlemin kendisine + ait SQL sunucusuna kalýcý bir baðlantýsý olacaktýr. Örneðin, 20 tane + kalýcý baðlantý açan betik çalýþtýrmýþ farklý çocuk iþlem varsa, SQL + sunucusuna, her çocuk iþlemden bir tane olmak üzere, 20 tane baðlantý + olacaktýr. + </simpara> + <simpara> + Ancak dikkat edin ki, SQL sunucusunun baðlantý limiti kalýcý baðlantýlarla + aþýldýðýnda bunun bir takým götürüleri olacaktýr. Eðer veritabaný + sunucunuz ayni anda 16 baðlantýya izin veriyorsa, ve yoðun bir çalýþma + anýnda 17 çocuk iþlem kalýcý baðlantý açmaya kalkarsa, bunlardan biri + baðlantýyý açamaz. Eðer betiklerinizde baðlantýlarýn kapanabilmesine olanak + tanýmayan hatalar varsa (kýsýr döngüler gibi), 32 baðlantýya izin veren bir + veritabaný sunucusu çok çabuk bir þekilde kullaným dýþý olur. Boþ duran + (idle) baðlantýlarla nasýl ilgileneceðiniz konusunda veritabanýnýzýn + dökümanlarýna baþvurun. </simpara> <warning> <simpara> - Kalıcı bağlantı kullanırken akılda tutulması gereken birkaç ek götürü daha - var. Örneğin kalıcı bir bağlantıyla bir tablo kitlendiyse (LOCK), ve betik - herhangi bir sebepten dolayı kilidi kaldıramıyorsa, ardısıra gelen - ve aynı bağlantıyı kullanacak betikler süresiz olarak bloke olacak, ve - sizin ya HTTP sunucusunu ya da veritabanı sunucusunu baştan çalıştırmanız - gerekecektir. Başka bir götürü transaction kullanırken oluşabilir. Bir - transaction bloğu, betiğin çalışma süresi bloğun ömründen kisaysa, bir - sonraki betiğe taşınacaktır. İki durumda da + <!-- dirge: register => kaydetmek --> + Kalýcý baðlantý kullanýrken akýlda tutulmasý gereken birkaç ek götürü daha + var. Örneðin kalýcý bir baðlantý üzerinden bir tablo kitlendiyse (LOCK), + ve betik herhangi bir sebepten dolayý kilidi kaldýramýyorsa, ardýsýra gelen + ve ayný baðlantýyý kullanacak betikler süresiz olarak bloke olacak, ve + sizin ya HTTP sunucusunu ya da veritabaný sunucusunu baþtan çalýþtýrmanýz + gerekecektir. Baþka bir götürü transaction kullanýrken oluþabilir. Bir + transaction bloðu, betiðin çalýþma süresi bloðun ömründen kisaysa, bir + sonraki betiðe taþýnacaktýr. Ýki durumda da <function>register_shutdown_function</function> ile transaction'i geri - alacak ya da tablo kilitlerini kaldıracak bir temizlik fonksiyonu + alacak ya da tablo kilitlerini kaldýracak bir temizlik fonksiyonu kaydedebilirsiniz. Daha iyisi, problemleri tümüyle önlemek için tablo - kilitleri veya transaction kullanan betiklerde kalıcı bağlantıları - kullanmamak (başka yerlerde hala kullanabilirsiniz). + kilitleri veya transaction kullanan betiklerde kalýcý baðlantýlarý + kullanmamaktýr (baþka yerlerde hala kullanabilirsiniz). </simpara> </warning> <simpara> - Önemli bir özet. Kalıcı bağlantılar normal bağlantılarla birebir - eşlenebilecek şekilde tasarlandı. Bu demektir ki <emphasis>her - zaman</emphasis> kalıcı bağlantıları normal olanlarla değiştirebilirsiniz, - ve bu betiklerin davranışlarını etkilemeyecektir. Betiklerin etkinliklerini - <emphasis>belki</emphasis> değiştirebilirler, fakat davranışını - değiştirmezler! + Önemli bir özet. Kalýcý baðlantýlar normal baðlantýlarla birebir + eþlenebilecek þekilde tasarlandý. Bu demektir ki <emphasis>her + zaman</emphasis> kalýcý baðlantýlarý normal olanlarla deðiþtirebilirsiniz, + ve bu betiklerin davranýþlarýný etkilemeyecektir. Betiklerin etkinliklerini + <emphasis>belki</emphasis> deðiþtirebilirler, fakat davranýþýný + deðiþtirmezler! </simpara> </chapter> Index: phpdoc/tr/features/remote-files.xml diff -u phpdoc/tr/features/remote-files.xml:1.1 phpdoc/tr/features/remote-files.xml:1.2 --- phpdoc/tr/features/remote-files.xml:1.1 Sun Dec 9 21:24:49 2001 +++ phpdoc/tr/features/remote-files.xml Mon Dec 10 13:24:46 2001 @@ -1,45 +1,46 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <chapter id="features.remote-files"> - <title>Uzaktaki Dosyaları Kullanmak</title> + <title>Uzaktaki Dosyalarý Kullanmak</title> + <!-- dirge: remote file => uzak dosya --> <para> - "URL fopen wrapper" PHP derlenmeden önce aktifleştirildiği (ki, - --disable-url-fopen-wrapper parametresini özellikle vermediğinizde + "URL fopen wrapper" PHP derlenmeden önce aktifleþtirildiði (ki, + --disable-url-fopen-wrapper parametresini özellikle vermediðinizde böyledir) (4.0.3 öncesi sürümler için) veya php.ini'de - <parameter>allow_url_fopen</parameter> ayarına off değerini vermediyseniz + <parameter>allow_url_fopen</parameter> ayarýna off deðerini vermediðiniz (yeni sürümler için) sürece, HTTP ve FTP URL'lerini parametre olarak - dosya ismi alan çoğu fonksiyonda, <function>require</function> ve - <function>include</function> ifadeleri dahil, kullanabilirsiniz. + dosya ismi alan, <function>require</function> ve + <function>include</function> ifadeleri dahil, çoðu fonksiyonda kullanabilirsiniz. </para> <para> <note> <para> - Uzak dosyaları Windows altında <function>include</function> ve - <function>require</function> ifadelerinde kullanamazsınız. + Uzak dosyalarý Windows altýnda <function>include</function> ve + <function>require</function> ifadelerinde kullanamazsýnýz. </para> </note> </para> <para> - Örneğin, bunu uzaktaki bir HTTP sunucusunda olan bir dosyayı açmak, - çıktısını ayıklamak ve elde edilen bilgiyi bir veritabanı sorgusunda - kullanmak, ya da basitçe web sitenizin geri kalanına uygun bir görüntüde + Örneðin, bunu uzaktaki bir HTTP sunucusunda olan bir dosyayý açmak, + çýktýsýný ayýklamak ve elde edilen bilgiyi bir veritabaný sorgusunda + kullanmak, ya da basitçe web sitenizin geri kalanýna uygun bir görüntüde göstermek için kullanabilirsiniz. </para> <para> <example> - <title>Uzaktaki bir sayfanın başlığını almak</title> + <title>Uzaktaki bir sayfanýn baþlýðýný almak</title> <programlisting role="php"> <![CDATA[ <?php $file = fopen ("http://www.php.net/", "r"); if (!$file) { - echo "<p>Uzaktaki dosya açılamadı.\n"; + echo "<p>Uzaktaki dosya açýlamadý.\n"; exit; } while (!feof ($file)) { $line = fgets ($file, 1024); - /* Bu sadece title etiketi ve içeriği aynı satırdaysa işe yarar */ + /* Bu sadece title etiketi ve içeriði ayný satýrdaysa iþe yarar */ if (eregi ("<title>(.*)</title>", $line, $out)) { $title = $out[1]; break; @@ -52,12 +53,12 @@ </example> </para> <para> - Ya da bunu, doğru erişim hakkına sahip bir kullanıcıyla bağlandığınız - ve çoktan dosya varolmadığı sürece FTP ile uzaktaki dosyalara yazmak - için kullanabilirsiniz. 'anonymous' dışında bir kullanıcı olarak bağlanmak - için kullanıcıyı (ve muhtemelen parolayı) URL içine yazmalısınız, örneğin - 'ftp://kullanıcı:parola@ftp.example.com/yol/dosya' gibi. (Aynı yöntemi - HTTP'de Basic Authentication'a ihtiyaç duyan dosyalara erişmek için de + Ya da bunu, doðru eriþim hakkýna sahip bir kullanýcýyla baðlandýðýnýz + ve çoktan dosya varolmadýðý sürece FTP ile uzaktaki dosyalara yazmak + için kullanabilirsiniz. 'anonymous' dýþýnda bir kullanýcý olarak baðlanmak + için kullanýcýyý (ve muhtemelen parolayý) URL içine yazmalýsýnýz, örneðin + 'ftp://kullanýcý:parola@ftp.example.com/yol/dosya' gibi. (Ayný yöntemi + HTTP'de Basic Authentication'a ihtiyaç duyan dosyalara eriþmek için de kullanabilirsiniz.) </para> <para> @@ -68,7 +69,7 @@ <?php $file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w"); if (!$file) { - echo "<p>Yazmak üzere uzak dosya açılamadı\n"; + echo "<p>Yazmak üzere uzak dosya açýlamadý\n"; exit; } /* Veriyi yaz */ @@ -82,11 +83,11 @@ <para> <note> <para> - Yukarıdaki örnekten, uzaktaki bir günlüğe yazmak için nasıl bir teknik - kullanacağınız konusunda bir fikir almışsınızdır, fakat önceden - belirtildiği gibi, URL fopen() sargılarıyla sadece yeni dosyalara - yazabilirsiniz. Bunun gibi dağıtılmış günlük tutmak isterseniz, - <function>syslog</function>'s bir göz atmalısınız. + Yukarýdaki örnekten, uzaktaki bir günlüðe yazmak için nasýl bir teknik + kullanacaðýnýz konusunda bir fikir almýþsýnýzdýr, fakat önceden + belirtildiði gibi, URL fopen() sargýlarýyla sadece yeni dosyalara + yazabilirsiniz. Bunun gibi daðýtýlmýþ günlük tutmak isterseniz, + <function>syslog</function>'a bir göz atmalýsýnýz. </para> </note> </para>