com doc/tr: update for sync with English docs.: appendices/configure/servers.xml appendices/transports.xml install/unix/apache1.xml install/unix/apache2.xml language/oop5/variance.xml
[email protected] (Nilgün Belma Bugüner) Mon, 11 Jan 2021 04:27:08 +0000
| Newsgroups | php.doc.tr |
|---|---|
| Message-ID | <[email protected]> |
Commit: 6cbd48df696460047ebaf80a53c2d6b07fa2dfdc Author: Nilgün Belma Bugüner <[email protected]> Mon, 11 Jan 2021 07:27:08 +0300 Parents: 58c0b2c297cf2ca8d8f10c5e7dbfefcd33dec3a6 Branches: master Link: http://git.php.net/?p=doc/tr.git;a=commitdiff;h=6cbd48df696460047ebaf80a53c2d6b07fa2dfdc Log: update for sync with English docs. Changed paths: M appendices/configure/servers.xml M appendices/transports.xml M install/unix/apache1.xml M install/unix/apache2.xml A language/oop5/variance.xml
diff_6cbd48df696460047ebaf80a53c2d6b07fa2dfdc.txt
(text/plain, 26.4 KB)
diff --git a/appendices/configure/servers.xml b/appendices/configure/servers.xml
index 6e0b8b5a..4aaa0d9c 100644
--- a/appendices/configure/servers.xml
+++ b/appendices/configure/servers.xml
@@ -1,23 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 6a772ab6a22e9885f2e77c68bdebb847e45a3896 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: e443388d4249fea383d6ec2d1a338be220cf95ee Maintainer: nilgun Status: ready -->
<sect3 xml:id="configure.options.servers" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>SAPI seçenekleri</title>
<para>
Aşağıda PHP için kullanılabilen SAPI'ler (<literal>Server
- Application Programming Interface</literal> kısaltması; Sunucu Uygulama Programlama Arayüzü) listelenmiştir.
+ Application Programming Interface</literal> kısaltması; Sunucu Uygulama
+ Programlama Arayüzü) listelenmiştir.
</para>
<variablelist>
- <varlistentry xml:id="configure.with-aolserver">
- <term>
- <option role="configure">--with-aolserver=DiZiN</option>
- </term>
- <listitem>
- <para>
- AOLserver eklentisinin kurulum yeri belirtilir.
- </para>
- </listitem>
- </varlistentry>
<varlistentry xml:id="configure.with-apxs">
<term>
<option role="configure">--with-apxs[=DOSYA]</option>
@@ -31,17 +22,19 @@
</para>
</listitem>
</varlistentry>
+
<varlistentry xml:id="configure.with-apache">
<term>
<option role="configure">--with-apache[=DiZiN]</option>
</term>
<listitem>
<para>
- PHP bir duruk Apache modülü olarak derlenir. DiZiN, Apache'nin kurulu
+ PHP bir statik Apache modülü olarak derlenir. DiZiN, Apache'nin kurulu
olduğu dizin olup <filename>/usr/local/apache</filename> öntanımlıdır.
</para>
</listitem>
</varlistentry>
+
<varlistentry xml:id="configure.with-mod-charset">
<term>
<option role="configure">--with-mod_charset</option>
@@ -52,6 +45,7 @@
</para>
</listitem>
</varlistentry>
+
<varlistentry xml:id="configure.with-apxs2">
<term>
<option role="configure">--with-apxs2[=DOSYA]</option>
@@ -65,26 +59,13 @@
</listitem>
</varlistentry>
- <varlistentry xml:id="configure.with-caudium">
- <term>
- <option role="configure">--with-caudium=DiZiN</option>
- </term>
- <listitem>
- <para>
- PHP, Caudium sunucu ile kullanmak için bir Pike modülü olarak derlenir.
- DiZiN, Caudium sunucunun kurulu olduğu dizin olup
- <filename>/usr/local/caudium/server</filename> öntanımlıdır.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry xml:id="configure.disable-cli">
<term>
<option role="configure">--disable-cli</option>
</term>
<listitem>
<para>
- PHP 4.3.0 ile kullanılabilir. PHP'nin CLI sürümünün derlenmemesini
+ PHP'nin CLI sürümünün derlenmemesini
sağlar (bu, <link linkend="configure.without-pear"
>--without-pear</link> seçeneğinin kullanımına sebep olur). Daha fazla
bilgi <link linkend="features.commandline">PHP'nin komut satırından
@@ -113,34 +94,11 @@
<para>
Gömülü SAPI kütüphanesinin kurulmasını sağlar. TÜR olarak
<literal>shared</literal> veya <literal>static</literal> belirtilebilir
- (paylaşımlı veya duruk); <literal>shared</literal> öntanımlıdır. PHP
- 4.3.0 ve sonrasında kullanılabilir.
+ (paylaşımlı veya statik); <literal>shared</literal> öntanımlıdır.
</para>
</listitem>
</varlistentry>
- <varlistentry xml:id="configure.with-fhttpd">
- <term>
- <option role="configure">--with-fhttpd[=DiZiN]</option>
- </term>
- <listitem>
- <para>
- fhttpd modülü derlenir. DiZiN, fhttpd dizini olup
- <filename>/usr/local/src/fhttpd</filename> öntanımlıdır. PHP
- 4.3.0'dan beri kullanılmamaktadır.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry xml:id="configure.with-isapi">
- <term>
- <option role="configure">--with-isapi=DiZiN</option>
- </term>
- <listitem>
- <para>
- PHP, Zeus ile kullanmak için bir ISAPI modülü olarak derlenir.
- </para>
- </listitem>
- </varlistentry>
<varlistentry xml:id="configure.with-nsapi">
<term>
<option role="configure">--with-nsapi=DiZiN</option>
@@ -151,47 +109,7 @@
</para>
</listitem>
</varlistentry>
- <varlistentry xml:id="configure.with-phttpd">
- <term>
- <option role="configure">--with-phttpd=DiZiN</option>
- </term>
- <listitem>
- <para>
- Henüz bir bilgi yok.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry xml:id="configure.with-pi3web">
- <term>
- <option role="configure">--with-pi3web=DiZiN</option>
- </term>
- <listitem>
- <para>
- PHP, Pi3Web ile kullanmak için bir modül olarak derlenir.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry xml:id="configure.with-roxen">
- <term>
- <option role="configure">--with-roxen=DiZiN</option>
- </term>
- <listitem>
- <para>
- PHP bir Pike modülü olarak derlenir. DiZiN, ana Roxen dizini
- olup normalde <filename>/usr/local/roxen/server</filename> dizinidir.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry xml:id="configure.enable-roxen-zts">
- <term>
- <option role="configure">--enable-roxen-zts</option>
- </term>
- <listitem>
- <para>
- Roxen modülü Zend Thread Safety kullanılarak derlenir.
- </para>
- </listitem>
- </varlistentry>
+
<varlistentry xml:id="configure.with-servlet">
<term>
<option role="configure">--with-servlet[=DiZiN]</option>
@@ -204,38 +122,6 @@
</para>
</listitem>
</varlistentry>
- <varlistentry xml:id="configure.with-thttpd">
- <term>
- <option role="configure">--with-thttpd=KaynakDizini</option>
- </term>
- <listitem>
- <para>
- PHP bir thttpd modülü olarak derlenir.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry xml:id="configure.with-tux">
- <term>
- <option role="configure">--with-tux=ModülDizini</option>
- </term>
- <listitem>
- <para>
- PHP bir TUX modülü olarak derlenir (sadece Linux'ta).
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry xml:id="configure.with-webjames">
- <term>
- <option role="configure">--with-webjames=KaynakDizini</option>
- </term>
- <listitem>
- <para>
- PHP bir WebJames modülü olarak derlenir (sadece RISC OS'ta).
- </para>
- </listitem>
- </varlistentry>
<varlistentry xml:id="configure.disable-cgi">
<term>
@@ -243,7 +129,7 @@
</term>
<listitem>
<para>
- PHP'nin CGI sürümü derlenmez. PHP 4.3.0 ve sonrasında kullanılabilir.
+ PHP'nin CGI sürümü derlenmez.
</para>
<para>
PHP 5.3.0 ve sonrasında, FastCGI bu seçenekten önce
@@ -307,19 +193,6 @@
</listitem>
</varlistentry> -->
- <varlistentry xml:id="configure.with-fastcgi">
- <term>
- <option role="configure">--with-fastcgi</option>
- </term>
- <listitem>
- <para>
- PHP bir FastCGI uygulaması olarak derlenir. PHP 4.3.0'dan beri
- kullanılmamaktadır, yerine
- <option role="configure">--enable-fastcgi</option> kullanılmalıdır.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry xml:id="configure.enable-fastcgi">
<term>
<option role="configure">--enable-fastcgi</option>
@@ -347,7 +220,13 @@
için <link xlink:href="&url.apache.core;#acceptpathinfo">Apache
Belgeleri</link>ne bakınız.
</para>
- </listitem>
+ <para>
+ PHP 5.3.0'dan beri bu seçenek öntanımlı olarak etkin olup artık mevcut
+ değildir. Bu özelliği iptal etmek için <link
+ linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link> ini yönergesine
+ <literal>0</literal> atanmalıdır.
+ </para>
+ </listitem>
</varlistentry>
</variablelist>
</sect3>
diff --git a/appendices/transports.xml b/appendices/transports.xml
index 62702a0e..893ea1fd 100644
--- a/appendices/transports.xml
+++ b/appendices/transports.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: eda3b067eb85fcd307682aa8966d3c017cc29be2 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: a6ecf96032f497b7c2f32240320a58e1b5d738c2 Maintainer: nilgun Status: ready -->
<appendix xml:id="transports" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Desteklenen Soket Aktarımlarının Listesi</title>
<para>
@@ -19,9 +19,8 @@
<section xml:id="transports.inet">
<title>Genel Ağ Alanı: TCP, UDP, SSL ve TLS</title>
<simpara>
- PHP 4, PHP 5. <literal>ssl://</literal> ve
- <literal>tls://</literal> PHP 4.3.0'dan beri, <literal>sslv2://</literal>
- ve <literal>sslv3://</literal> ise PHP 5.0.2'den beri desteklenmektedir.
+ <literal>ssl://</literal>, <literal>tls://</literal>,
+ <literal>sslv2://</literal> ve <literal>sslv3://</literal> desteklenmektedir.
</simpara>
<note>
@@ -73,10 +72,7 @@
<simpara>
<literal>ssl://</literal> ve <literal>tls://</literal> aktarımları (sadece
PHP openssl desteği ile derlenmişse vardırlar) <literal>tcp://</literal>
- aktarımının SSL şifrelemeli uzantılarıdır. OpenSSL desteği PHP 4.3.0
- sürümünden beri PHP içinde duruk olarak derlenmekte ise de PHP 5.0.0'dan
- itibaren duruk olarak derlenebildiği gibi modül olarak da
- derlenebilmektedir.
+ aktarımının SSL şifrelemeli uzantılarıdır.
</simpara>
<simpara>
@@ -109,6 +105,12 @@
gerektirmezler. Bu durumda <function>fsockopen</function> işlevinin
<parameter>portnum</parameter> değiştirgesine 0 atanmalıdır.
</simpara>
+
+ <note>
+ <simpara>
+ Unix alanı soketleri Windows'da desteklenmez.
+ </simpara>
+ </note>
</section>
</appendix>
diff --git a/install/unix/apache1.xml b/install/unix/apache1.xml
index 6a227dd8..a076029d 100644
--- a/install/unix/apache1.xml
+++ b/install/unix/apache1.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 5179a9d3ad94cd96a537d0d68ab0facaf43d7189 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: a2fcd66690146176936b03f26ee0f530063ce888 Maintainer: nilgun Status: ready -->
<sect1 xml:id="install.unix.apache" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Unix sistemler ve Apache 1.3.x</title>
<para>
@@ -11,7 +11,7 @@
</para>
<para>
Aşağıda, 10. şıkta kullanacağınız <command>configure</command> betiğinin
- <link linkend="configure">temel yapılandırma seçenekleri</link>ni eklerde
+ <link linkend="configure.about">temel yapılandırma seçenekleri</link>ni eklerde
bulabilirsiniz. Eklentilere özgü yapılandırma seçenekleri ise
eklentilerin kılavuzdaki belgelerinde bulunabilir. Örneklerde
yazılımların sürüm numaraları, belgeyi sürüm numarasına bağlı kılmamak
@@ -101,7 +101,7 @@
</example>
<para>
- PHP'yi bir duruk nesne olarak da kurabilirsiniz:
+ PHP'yi bir statik nesne olarak da kurabilirsiniz:
</para>
<example xml:id="install.unix.apache.example-static">
@@ -235,7 +235,7 @@ başlatmanız gerekebilir:
seçeneği kullanılarak derlendiğinde Apache
<filename>libphp5.a</filename> kütüphanesini oluşturacak ve onu
<filename>httpd</filename> çalıştırılabiliri ile
- duruk olarak ilintileyecektir. PostgreSQL desteği de doğrudan
+ statik olarak ilintileyecektir. PostgreSQL desteği de doğrudan
<filename>httpd</filename> çalıştırılabiliri içinde olacaktır. Böylece
sonuçta tek bir <filename>httpd</filename> çalıştırılabiliri Apache ve
PHP'nin tamamını içerecektir.
@@ -260,7 +260,7 @@ başlatmanız gerekebilir:
PHP'yi derlemek için seçtiğiniz her yolun getirileri olacağı gibi
götürüleri de olacaktır. Paylaşımlı nesne olarak derlemek, Apache'yi
ayrı olarak derleyip, PHP ile ilgili hiçbir şey için Apache'yi tekrar
- derleme ihtiyacı duymamak demektir. PHP'yi Apache içinde (duruk yöntem)
+ derleme ihtiyacı duymamak demektir. PHP'yi Apache içinde (statik yöntem)
derlerseniz PHP daha çabuk yüklenecek ve daha hızlı çalışacaktır. Bu
konularda daha ayrıntılı bilgi edinmek için Apache'nin <link
xlink:href="&url.apachedso;">DSO desteği</link> sayfasına bakınız.
diff --git a/install/unix/apache2.xml b/install/unix/apache2.xml
index d7d9d668..2027ec03 100644
--- a/install/unix/apache2.xml
+++ b/install/unix/apache2.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: fe776e93a129855c2abb623341318f9f1813e57e Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 8358db82c0c9c91de1e7fe4b9d8b1dcbf2b24975 Maintainer: nilgun Status: ready -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Unix sistemler ve Apache 2.x</title>
<para>
@@ -28,35 +28,34 @@
kurulan Apache sürümünün sürüm numarası yazılmalıdır.
</para>
<para>
- Apache 2.x'in şu an iki sürümü mevcuttur: 2.0 ve 2.2. Bunlardan birini
- seçmek için çeşitli sebepler olabilirse de 2.2 şu an için en son ve
- önerilen sürümdür. Ancak, burada sözü edilen talimatlar hem 2.0 hem de 2.x
- için çalışır.
+ Apache 2.x'in şu an iki sürümü mevcuttur: 2.4 ve 2.2. Bunlardan birini
+ seçmek için çeşitli sebepler olabilirse de 2.4 şu an için en son ve
+ önerilen sürümdür. Ancak, burada sözü edilen talimatlar hem 2.4 hem de 2.2
+ için çalışır. Apache httpd 2.2 resmen sonlandırılmış olup yeni
+ geliştirmeler yapılmamakta ve yama çıkarılmamaktadır.
</para>
<orderedlist>
<listitem>
<para>Apache HTTP sunucusunu edindikten sonra şu komutları verin:
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
-gzip -d httpd-2_x_NN.tar.gz
-tar -xf httpd-2_x_NN.tar
+tar -xzf httpd-2.x.NN.tar.gz
]]>
</screen>
- </example>
+ </informalexample>
</listitem>
<listitem>
<para>Benzer işlemleri PHP için de yapın:</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
-gunzip php-NN.tar.gz
-tar -xf php-NN.tar
+tar -xzf php-NN.tar.gz
]]>
</screen>
- </example>
+ </informalexample>
</listitem>
<listitem>
@@ -65,7 +64,7 @@ tar -xf php-NN.tar
derleneceğini Apache kurulumu belgesinden öğrenebilirsinz.
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
cd httpd-2_x_NN
@@ -74,7 +73,7 @@ make
make install
]]>
</screen>
- </example>
+ </informalexample>
</listitem>
<listitem>
@@ -82,21 +81,21 @@ make install
Böylece standart prefork MPM'si ve yüklenebilir modül desteği ile Apache
2.x.NN /usr/local/apache2 altına kurulmuş oldu. Kurulumu denemek için
Apache HTTP sunucusunu normal yollardan başlatabilirsiniz. Örnek:
- <example>
+ <informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
- </example>
+ </informalexample>
PHP yapılandırması ile çalıştırmak üzere sunucuyu durdurun:
- <example>
+ <informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl stop
]]>
</screen>
- </example>
+ </informalexample>
</para>
</listitem>
@@ -114,7 +113,7 @@ make install
kurduysanız apxs yolunu buna uygun olarak ayarlamalısınız. Bazı dağıtımlar
apxs yerine apxs2 ismini kullanır, buna dikkat edin.
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
cd ../php-NN
@@ -123,11 +122,11 @@ make
make install
]]>
</screen>
- </example>
+ </informalexample>
<para>
Eğer kurulumdan sonra yapılandırmanızı değiştirmek isterseniz sadece
configure, make ve make install adımlarını yinelemeniz yeterli olacaktır.
- Yeni modülün etkin olabilmesi için Apache'yi yeniden başlatmanız gerekir.
+ Yeni modülün etkin olabilmesi için Apache'yi yeniden başlatmanız gerekir.
Apache'yi yeniden derlemeniz gerekmez.
Aksi özellikle belirtilmedikçe 'make install' ile phpize gibi çeşitli PHP
@@ -142,13 +141,13 @@ make install
<para>
php.ini dosyanızı yapılandırın.
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
cp php.ini-development /usr/local/lib/php.ini
]]>
</screen>
- </example>
+ </informalexample>
<para>
PHP seçeneklerini ayarlamak için .ini dosyanızı düzenleyebilirsiniz. .ini
@@ -170,13 +169,27 @@ cp php.ini-development /usr/local/lib/php.ini
göstermelidir. Yukarıdaki 'make install' bunu sizin yerinize yapmıştır
ama emin olmak için siz yine de bir bakın.
</para>
- <example>
- <programlisting role="apache-conf">
+ <informalexample>
+ <para>
+ PHP 7 için:
+ </para>
+ <programlisting role="apache-conf">
+<![CDATA[
+LoadModule php7_module modules/libphp7.so
+]]>
+ </programlisting>
+ </informalexample>
+
+ <informalexample>
+ <para>
+ PHP 5 için:
+ </para>
+ <programlisting role="apache-conf">
<![CDATA[
LoadModule php5_module modules/libphp5.so
]]>
</programlisting>
- </example>
+ </informalexample>
</listitem>
<listitem>
<para>
@@ -189,7 +202,7 @@ LoadModule php5_module modules/libphp5.so
ekledik. Başka uzantıları da buraya ekleyebilirsiniz. Bunları aralarında
boşluk bırakarak aynı satıra yazabilirsiniz.
</para>
- <example>
+ <informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch \.php$>
@@ -197,13 +210,13 @@ LoadModule php5_module modules/libphp5.so
</FilesMatch>
]]>
</programlisting>
- </example>
+ </informalexample>
<para>
Veya .php, .php2, .php3, .php4, .php5, .php6 ve .phtml gibi dosyalar
dışında hiçbir dosyanın PHP tarafından çalıştırılmamasını şöyle
sağlayabilirsiniz:
</para>
- <example>
+ <informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.ph(p[2-6]?|tml)$">
@@ -211,12 +224,12 @@ LoadModule php5_module modules/libphp5.so
</FilesMatch>
]]>
</programlisting>
- </example>
+ </informalexample>
<para>
PHP kaynak kodlarını renklendirilmiş olarak göstermek için .phps
uzantısını da yapılandırmanıza ekleyebilirsiniz. Bu, şöyle yapılır:
</para>
- <example>
+ <informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.phps$">
@@ -224,19 +237,19 @@ LoadModule php5_module modules/libphp5.so
</FilesMatch>
]]>
</programlisting>
- </example>
+ </informalexample>
<para>
.php dosyalarının uzantılarını .phps olarak değiştirmeden kaynak kodlarını
renklendirilmiş olarak göstermek isterseniz bunu şöyle yapabilirsiniz:
</para>
- <example>
+ <informalexample>
<programlisting role="apache-conf">
<![CDATA[
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
]]>
</programlisting>
- </example>
+ </informalexample>
<para>
PHP kaynak süzgeci, gizli kalması gereken bilgiler içeren genel kullanıma
açık sunucularda kullanılmamalıdır. Aksi takdirde gizli kalması gereken
@@ -248,21 +261,21 @@ RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
Artık Apache'yi başlatabilirsiniz. Bunun için Apache'yi her zaman ki gibi
başlatmanız yetecektir:
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
- </example>
+ </informalexample>
<para>VEYA</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
service httpd restart
]]>
</screen>
- </example>
+ </informalexample>
</listitem>
</orderedlist>
@@ -279,13 +292,13 @@ service httpd restart
Bunu yapmak için 3. şıkta derleme seçeneklerinize şu seçeneğini
ekleyebilirsiniz:
</para>
- <example>
+ <informalexample>
<screen>
<![CDATA[
--with-mpm=worker
]]>
</screen>
- </example>
+ </informalexample>
<para>
Bunu yapmadan önce, bunun olası sonuçları hakkında
bilgi sahibi olmaya, azından ne gibi etkilerinin olacağını anlamaya
diff --git a/language/oop5/variance.xml b/language/oop5/variance.xml
new file mode 100644
index 00000000..7bde6acd
--- /dev/null
+++ b/language/oop5/variance.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 84b2eca1809fb0b2a7315cefb8810ca96fbeebb6 Maintainer: nilgun Status: ready -->
+<sect1 xml:id="language.oop5.variance" xmlns="http://docbook.org/ns/docbook">
+ <title>Çok Özgüllük ve Az Özgüllük</title>
+
+ <para>
+ PHP 7.2.0'da, bir çocuk yöntem değiştirgelerindeki tür sınırlamaları
+ kaldırılarak az özgüllüklere kısmen girildi. PHP 7.4.0'dan itibaren,
+ az ve çok özgüllüklere tam destek eklendi.
+ </para>
+ <para>
+ Çok özgüllük, bir çocuk yöntemin ebeveyn yönteminden daha özellikli bir
+ tür döndürmesine izin verir. Buna karşın, az özgüllük, bir değiştirgenin
+ bir çocuk yöntemin içinde ebeveyndekinden daha az özellikli olmasına izin
+ verir.
+ </para>
+
+ <sect2 xml:id="language.oop5.variance.covariance">
+ <title>Çok Özgüllük</title>
+
+ <para>
+ Çok özgüllüğün nasıl çalıştığını göstermek için, basit bir soyut
+ ebeveyn sınıf olarak <varname>Hayvan</varname> sınıfı oluşturulup
+ <varname>Kedi</varname> ve <varname>Köpek</varname> çocuk sınıflarına
+ genişletildi.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+abstract class Hayvan
+{
+ protected string $isim;
+
+ public function __construct(string $isim)
+ {
+ $this->name = $isim;
+ }
+
+ abstract public function konuş();
+}
+
+class Köpek extends Hayvan
+{
+ public function konuş()
+ {
+ echo $this->name . " havlar";
+ }
+}
+
+class Kedi extends Hayvan
+{
+ public function konuş()
+ {
+ echo $this->name . " miyavlar";
+ }
+}
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Bu örnekte yöntemlerin hiçbiri değer döndürmemektedir.
+ <varname>Hayvan</varname>, <varname>Kedi</varname> ve
+ <varname>Köpek</varname> sınıfı türünde yeni bir nesne döndüren birkaç
+ arayüz eklenecektir.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+interface HayvanYuvası
+{
+ public function sahiplen(string $isim): Hayvan;
+}
+
+class KediYuvası implements HayvanYuvası
+{
+ public function sahiplen(string $isim): Kedi // Hayvan türünde bir sınıf yerine Kedi türünde bir sınıf döner
+ {
+ return new Kedi($isim);
+ }
+}
+
+class KöpekYuvası implements HayvanYuvası
+{
+ public function sahiplen(string $isim): Köpek // Hayvan türünde bir sınıf yerine Köpek türünde bir sınıf döner
+ {
+ return new Köpek($isim);
+ }
+}
+
+$mırnav = (new KediYuvası)->sahiplen("Tekir");
+$mırnav->konuş();
+echo "\n";
+
+$kuçu = (new KöpekYuvası)->sahiplen("Çomar");
+$kuçu->konuş();
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+Tekir miyavlar
+Çomar havlar
+]]>
+ </screen>
+ </informalexample>
+ </sect2>
+
+ <sect2 xml:id="language.oop5.variance.contravariance">
+ <title>Az Özgüllük</title>
+
+ <para>
+ <varname>Hayvan</varname>, <varname>Kedi</varname> ve
+ <varname>Köpek</varname> sınıflarıyla önceki örneğe devam ederek, bunlara
+ <varname>Yem</varname> ve <varname>HayvanYemi</varname> sınıflarını dahil
+ edip <varname>Hayvan</varname> soyut sınıfına
+ <varname>ye(HayvanYemi $yem)</varname> yöntemini ekleyelim.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+class Yem {}
+
+class HayvanYemi extends Yem {}
+
+abstract class Hayvan
+{
+ protected string $isim;
+
+ public function __construct(string $isim)
+ {
+ $this->name = $isim;
+ }
+
+ public function ye(HayvanYemi $yem)
+ {
+ echo $this->name . " " . get_class($yem) . "yer";
+ }
+}
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Az özgüllüğün davranışını görmek için, herhangi bir
+ <varname>Yem</varname> türü nesneye izin vermek için <varname>Köpek</varname>
+ sınıfında <varname>ye</varname> yöntemi geçersiz kılınır.
+ <varname>Kedi</varname> sınıfı değişmeden kalır.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+class Köpek extends Hayvan
+{
+ public function ye(Yem $yem) {
+ echo $this->name . " " . get_class($yem) . "yer";
+ }
+}
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Aşağıdaki örnek az özgüllüğün davranışını gösterir:
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$mırnav = (new KediYuvası)->sahiplen("Tekir");
+$kediYemi = new HayvanYemi();
+$mırnav->ye($kediYemi);
+echo "\n";
+
+$kuçu = (new KöpekYuvası)->sahiplen("Çomar");
+$kemik = new Yem();
+$kuçu->ye($kemik);
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+Tekir HayvanYemi yer
+Çomar Yem yer
+]]>
+ </screen>
+
+ <para>
+ Peki $mırnav $kemik <varname>ye</varname>meye çalışırsa ne olur?
+ </para>
+
+ <programlisting role="php">
+<![CDATA[
+$mırnav->ye($kemik);
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+Fatal error: Uncaught TypeError: Argument 1 passed to Hayvan::ye() must be an instance of HayvanYemi, instance of Yem given
+Türkçesi: Ölümcül hata: ... : Hayvan::ye() yöntemine aktarılan 1. değiştirge
+bir HayvanYemi örneği olmalı, Yem örneği verildi
+]]>
+ </screen>
+ </informalexample>
+ </sect2>
+</sect1>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->