tpug Mon Dec 10 13:38:23 2001 EDT Modified files: /phpdoc/tr/features connection-handling.xml error-handling.xml persistent-connections.xml remote-files.xml Log: oops, turkish entities corrected - by Serdar
Index: phpdoc/tr/features/connection-handling.xml diff -u phpdoc/tr/features/connection-handling.xml:1.2 phpdoc/tr/features/connection-handling.xml:1.3 --- phpdoc/tr/features/connection-handling.xml:1.2 Mon Dec 10 13:24:46 2001 +++ phpdoc/tr/features/connection-handling.xml Mon Dec 10 13:38:22 2001 @@ -1,78 +1,78 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <chapter id="features.connection-handling"> - <!-- dirge: handling => işleme --> - <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> + <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: + 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> + <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. + 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 + 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 + 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 + 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 + 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 + 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. + 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 + 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> Index: phpdoc/tr/features/error-handling.xml diff -u phpdoc/tr/features/error-handling.xml:1.2 phpdoc/tr/features/error-handling.xml:1.3 --- phpdoc/tr/features/error-handling.xml:1.2 Mon Dec 10 13:24:46 2001 +++ phpdoc/tr/features/error-handling.xml Mon Dec 10 13:38:22 2001 @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <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>desteklendikleri 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 + 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 + 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 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ş + 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 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 + ç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 XML formatında bir günlükte 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.2 phpdoc/tr/features/persistent-connections.xml:1.3 --- phpdoc/tr/features/persistent-connections.xml:1.2 Mon Dec 10 13:24:46 2001 +++ phpdoc/tr/features/persistent-connections.xml Mon Dec 10 13:38:22 2001 @@ -1,120 +1,120 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <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ı - kurar. 'Tamamen aynı' bağlantılar, aynı sunucuya, aynı kullanıcı ismi ve - (gerekliyse) şifreyle 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 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. + <!-- 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. + <!-- 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 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. + 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> <!-- 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 + 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ı - kullanmamaktır (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.2 phpdoc/tr/features/remote-files.xml:1.3 --- phpdoc/tr/features/remote-files.xml:1.2 Mon Dec 10 13:24:46 2001 +++ phpdoc/tr/features/remote-files.xml Mon Dec 10 13:38:22 2001 @@ -1,35 +1,35 @@ <?xml version="1.0" encoding="iso-8859-9"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <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 vermediğiniz + <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, <function>require</function> ve - <function>include</function> ifadeleri dahil, çoğu fonksiyonda kullanabilirsiniz. + <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 @@ -53,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ı:[EMAIL PROTECTED]/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ı:[EMAIL PROTECTED]/yol/dosya' gibi. +(Aynı yöntemi + HTTP'de Basic Authentication'a ihtiyaç duyan dosyalara erişmek için de kullanabilirsiniz.) </para> <para> @@ -83,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>'a 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>