svn: /phpdoc/tr/trunk/language/oop5/ autoload.xml late-static-bindings.xml magic.xml object-comparison.xml overloading.xml paamayim-nekudotayim.xml
[email protected] (Nilgün Belma Bugüner)
| Newsgroups | php.doc.tr |
|---|---|
| Message-ID | <[email protected]> |
nilgun Wed, 10 Oct 2018 09:19:16 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=345799
Log:
update for sync with English docs.
Changed paths:
U phpdoc/tr/trunk/language/oop5/autoload.xml
U phpdoc/tr/trunk/language/oop5/late-static-bindings.xml
U phpdoc/tr/trunk/language/oop5/magic.xml
U phpdoc/tr/trunk/language/oop5/object-comparison.xml
U phpdoc/tr/trunk/language/oop5/overloading.xml
U phpdoc/tr/trunk/language/oop5/paamayim-nekudotayim.xml
svn-diffs-345799.txt
(text/x-diff, 18 KB)
Modified: phpdoc/tr/trunk/language/oop5/autoload.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/autoload.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/autoload.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -134,20 +134,20 @@
</screen>
</example>
<example>
- <title>Autoloading with exception handling for 5.3.0+ - Missing custom exception</title>
+ <title>5.3.0+ için istisnalı özdevinimli yükleme - Eksik özel istisna</title>
<para>
- This example throws an exception for a non-loadable, custom exception.
+ Bu örnek, yüklenemeyen, özel bir istisna için bir istisna yavrular.
</para>
<programlisting role="php">
<![CDATA[
<?php
spl_autoload_register(function ($name) {
- echo "Want to load $name.\n";
- throw new MissingException("Unable to load $name.");
+ echo "$name yüklenmek isteniyor.\n";
+ throw new Eksikİstisna("$name yüklenemedi.");
});
try {
- $obj = new NonLoadableClass();
+ $obj = new YülenemezSınıf();
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
@@ -157,10 +157,10 @@
&example.outputs;
<screen>
<![CDATA[
-Want to load NonLoadableClass.
-Want to load MissingException.
+YülenemezSınıf yüklenmek isteniyor.
+Eksikİstisna yüklenmek isteniyor.
-Fatal error: Class 'MissingException' not found in testMissingException.php on line 4
+Fatal error: Class 'Eksikİstisna' not found in testMissingException.php on line 4
]]>
</screen>
</example>
Modified: phpdoc/tr/trunk/language/oop5/late-static-bindings.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/late-static-bindings.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/late-static-bindings.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 305233 Maintainer: nilgun Status: ready -->
<sect1 xml:id="language.oop5.late-static-bindings" xmlns="http://docbook.org/ns/docbook">
<title>Duruk İçselleştirim</title>
<para>
@@ -10,6 +10,20 @@
</para>
<para>
+ Daha kesin olarak, duruk içselleştirim son "ötelenmeyen çağrıda" bahsi
+ geçen sınıfın saklanmasıyla çalışır. Duruk yöntem çağrısı durumunda sınıfın
+ adı açıkça (genellikle
+ <link linkend="language.oop5.paamayim-nekudotayim"><literal>::</literal></link>
+ işlecinin sol tarafında) belirtilmiştir. Duruk olmayan yöntem çağrısı
+ durumunda söz konusu sınıf, nesnenin sınıfıdır. Bir "ötelenen çağrı",
+ bir <literal>self::</literal>, <literal>parent::</literal>,
+ <literal>static::</literal> yöntemi veya sınıf hiyerarşisi üzerinden
+ gidiliyorsa <function>forward_static_call</function> çağrısıdır.
+ <!-- technically, static:: may be non forwarding, but it's irrelevant -->
+ <function>get_called_class</function> işlevi, çağrılan sınıfın ismini bir dize olarak almakta kullanılabilir ve bağlamını <literal>static::</literal> belirler.
+ </para>
+
+ <para>
"<literal>Duruk içselleştirme</literal>", <literal>static::</literal>
yöntemin çalışma anında, tanımlandığı nesnenin bağlamında değil,
çağrıldığı nesnenin bağlamında değerlendirilmesi olgusunu betimler.
@@ -103,9 +117,11 @@
</example>
<note>
<para>
- Duruk yöntemler için <literal>static::</literal>, <literal>$this</literal> gibi
- çalışmaz! <literal>$this-></literal> kalıtım kurallarına bağlıdır,
- <literal>static::</literal> değildir.
+ Duruk olmayan bağlamlarda, çağrılan sınıf, nesne örneğini sınıfı
+ olacaktır. <literal>$this-></literal> aynı bağlamdaki private yöntemleri
+ çağırmayı denerken, <literal>static::</literal> kullanımı farklı sonuçlar
+ verebilir. <literal>static::</literal> ile ilgili diğer bir fark, sadece
+ duruk özellikler için kullanılabilmesidir.
</para>
</note>
<example>
@@ -113,39 +129,43 @@
<programlisting role="php">
<![CDATA[
<?php
-class Çocuk extends Ebeveyn {
- public function __construct() {
- static::kimsin();
+class A {
+ private function foo() {
+ echo "success!\n";
}
public function dene() {
- $o = new Ebeveyn();
+ $this->foo();
+ static::foo();
}
+}
- public static function kimsin() {
- echo __CLASS__."\n";
- }
+class B extends A {
+ /* foo() B'ye kopyalanacak, dolayısıyls bağlamı hala A olacak ve
+ * çağrı başarılı olacaktır. */
}
-class Ebeveyn {
- public function __construct() {
- static::kimsin();
+class C extends A {
+ private function foo() {
+ /* özgün yöntem değişti; yenisinin bağlamı C'dir */
}
-
- public static function kimsin() {
- echo __CLASS__."\n";
- }
}
-$o = new Çocuk;
-$o->dene();
+$b = new B();
+$b->test();
+$c = new C();
+$c->test(); //hata verir
?>]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
-Çocuk
-Ebeveyn
+success!
+success!
+success!
+
+
+Fatal error: Call to private method C::foo() from context 'A' in /tmp/test.php on line 9
]]>
</screen>
</example>
@@ -203,50 +223,6 @@
</example>
</note>
</sect2>
- <sect2 xml:id="language.oop5.late-static-bindings.edge-cases">
- <title>Yan etkiler</title>
- <para>
- PHP'de bir yöntem çağrısını tetiklemenin çok çeşitli yolları vardır;
- <literal>geri çağırımlar</literal> ve <literal>sihirli yöntemler</literal>
- gibi. Bunlar duruk içselleştirime tabi tutulduklarında, çalışma anında
- beklenmeyen sonuçlara sebep olurlar.
- </para>
- <example>
- <title>- Sihirli yöntemlerin içinde duruk içselleştirim</title>
- <programlisting role="php">
-<![CDATA[
-<?php
-class A {
-
- protected static function kimsin() {
- echo __CLASS__."\n";
- }
-
- public function __get($var) {
- return static::kimsin();
- }
-}
-
-class B extends A {
-
- protected static function kimsin() {
- echo __CLASS__."\n";
- }
-}
-
-$b = new B;
-$b->nesin;
-?>
-]]>
- </programlisting>
- &example.outputs;
- <screen>
-<![CDATA[
-B
-]]>
- </screen>
- </example>
- </sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
Modified: phpdoc/tr/trunk/language/oop5/magic.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/magic.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/magic.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 334638 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 339526 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.magic" xmlns="http://docbook.org/ns/docbook">
<title>Sihirli Yöntemler</title>
@@ -299,6 +299,20 @@
]]>
</screen>
</example>
+ <note>
+ <simpara>
+ Bir nesne ihraç edilirken,
+ <link linkend="object.set-state">__set_state()</link> nesnenin sınıfı
+ tarafından gerçeklenmiş mi diye <function>var_export</function> bakmaz,
+ dolayısıyla böyle nesnelerin yeniden ithali __set_state() hiç
+ gerçeklenmemiş gibi başarısız olur. Bu kısmen bazı dahili sınıfları da
+ etkiler.
+ </simpara>
+ <simpara>
+ Sadece, __set_state() gerçekleyen sınıfın nesnelerinin yeniden ithal
+ edileceğini doğrulamak yazılımcının sorumluluğundadır.
+ </simpara>
+ </note>
</sect2>
<sect2 xml:id="language.oop5.magic.debuginfo">
Modified: phpdoc/tr/trunk/language/oop5/object-comparison.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/object-comparison.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/object-comparison.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -1,22 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 343316 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.object-comparison" xmlns="http://docbook.org/ns/docbook">
<title>Nesnelerin Karşılaştırılması</title>
<para>
- Nesne karşılaştırma, PHP 5'te PHP 4'e nazaran daha karmaşıktır. PHP 5,
- bir Nesne Yönelimli Dil'den beklenenleri daha iyi karşılar (ancak, PHP 5
- böyle bir dildir, demiyoruz).
- </para>
- <para>
Eşitlik işleci (<literal>==</literal>) kullanıldığında, nesne
değişkenleri basit bir mantıkla karşılaştırılır: İki nesne örneği aynı
- özniteliklere ve aynı değerlere sahipse ve ikisi de aynı sınıf tarafından
+ özniteliklere ve aynı (<literal>==</literal> ile karşılaştırılan)
+ değerlere sahipse ve ikisi de aynı sınıf tarafından
oluşturulmuşsa bu iki nesne örneği birbirine eşittir.
</para>
<para>
- Öte yandan, aynılık işleci (<literal>===</literal>) kullanıldığında, iki
+ Aynılık işleci (<literal>===</literal>) kullanıldığında, iki
nesne değişkeni yalnız ve yalnız aynı sınıfın aynı örneği iseler
birbirlerinin aynısıdırlar.
</para>
@@ -48,7 +44,7 @@
{
public $flag;
- function Flag($flag = true) {
+ function __construct($flag = true) {
$this->flag = $flag;
}
}
@@ -58,7 +54,7 @@
public $flag;
function OtherFlag($flag = true) {
- $this->flag = $flag;
+ $this->__construct = $flag;
}
}
@@ -104,8 +100,8 @@
</para>
<note>
<para>
- Eklentiler, kendi nesne karşılaştırmaları için kendi kurallarını
- tanımlayabilirler.
+ Eklentiler, kendi nesne karşılaştırmaları (<literal>==</literal>) için
+ kendi kurallarını tanımlayabilir.
</para>
</note>
</sect1>
Modified: phpdoc/tr/trunk/language/oop5/overloading.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/overloading.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/overloading.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 322134 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 332595 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.overloading" xmlns="http://docbook.org/ns/docbook">
<title>Aşırı Yükleme</title>
@@ -61,8 +61,16 @@
<entry>
<link linkend="object.isset">__isset()</link> ve
<link linkend="object.unset">__unset()</link> eklendi.
+ Özel özellikleri aşırı yüklemek için
+ <link linkend="object.get">__get()</link> eklendi.
</entry>
</row>
+ <row>
+ <entry>5.0.0</entry>
+ <entry>
+ <link linkend="object.get">__get()</link> eklendi.
+ </entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
@@ -136,20 +144,6 @@
</para>
</note>
- <note>
- <para>
- <function>isset</function> dışında hiçbir dil yapısında aşırı yüklü
- özellikleri kullanmak mümkün değildir. Yani, eğer bir aşırı yüklü özellik
- üzerinde <function>empty</function> çağrılırsa aşırı yüklü yöntem
- çağrılmaz.
- </para>
- <para>
- Bu sınırlamadan kurtulmak için aşırı yüklü özellik önce aynı bağlamdaki
- bir yerel değişkene kopyalanmalı, ondan sonra <function>empty</function>
- çağrılmalıdır.
- </para>
- </note>
-
<example>
<title>- <link linkend="object.get">__get()</link>,
<link linkend="object.set">__set()</link>,
Modified: phpdoc/tr/trunk/language/oop5/paamayim-nekudotayim.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/paamayim-nekudotayim.xml 2018-10-10 07:00:36 UTC (rev 345798)
+++ phpdoc/tr/trunk/language/oop5/paamayim-nekudotayim.xml 2018-10-10 09:19:16 UTC (rev 345799)
@@ -1,42 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 340236 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
- <sect1 xml:id="language.oop5.paamayim-nekudotayim" xmlns="http://docbook.org/ns/docbook">
- <title>Etki Alanı Çözünürlük İşleci (::)</title>
+<sect1 xml:id="language.oop5.paamayim-nekudotayim" xmlns="http://docbook.org/ns/docbook">
+ <title>Etki Alanı Çözünürlük İşleci (::)</title>
- <para>
- Etki Alanı Çözünürlük İşleci (Paamayim Nekudotayim de denirmiş), basitçe
- bir çift iki nokta iminden ibaret olup (biz "iki nokta çifti"
- diyebiliriz), bir sınıfın <link linkend="language.oop5.static"
- >duruk</link>, <link linkend="language.oop5.constants">sabit</link> ve
- geçersiz kılınmış özellik ve yöntemlerine erişilebilmesini sağlayan bir
- simgedir.
- </para>
+ <para>
+ Etki Alanı Çözünürlük İşleci (Paamayim Nekudotayim de denirmiş), basitçe
+ bir çift iki nokta iminden ibaret olup (biz "iki nokta çifti"
+ diyebiliriz), bir sınıfın <link linkend="language.oop5.static"
+ >duruk</link>, <link linkend="language.oop5.constants">sabit</link> ve
+ geçersiz kılınmış özellik ve yöntemlerine erişilebilmesini sağlayan bir
+ simgedir.
+ </para>
- <para>
- Bu öğelere sınıf tanımının dışından erişirken bu işlecin solunda sınıfın
- ismini kullanın.
- </para>
+ <para>
+ Bu öğelere sınıf tanımının dışından erişirken bu işlecin solunda sınıfın
+ ismini kullanın.
+ </para>
+
+ <para>
+ PHP 5.3.0 ve sonrasında, bu işlecin solunda sınıf ismi yerine bir değişken
+ kullanmak da mümkündür. Değişken ismi, (<literal>self</literal>,
+ <literal>parent</literal>, <literal>static</literal> gibi) bir anahtar
+ sözcük olmamalıdır.
+ </para>
- <para>
- PHP 5.3.0 ve sonrasında, bu işlecin solunda sınıf ismi yerine bir değişken
- kullanmak da mümkündür. Değişken ismi, (<literal>self</literal>,
- <literal>parent</literal>, <literal>static</literal> gibi) bir anahtar
- sözcük olmamalıdır.
- </para>
+ <para>
+ <quote>Paamayim Nekudotayim</quote> ilk bakışta iki nokta üst üste için
+ garip bir adlandırma gibi gözükebilir. Ancak, Zend Engine 0.5 (php 3'ün
+ kalbidir) yazıldığı esnada Zend ekibinin kullanmak istediği terim bu
+ oldu. Esasında bu iki sözcük de iki nokta çifti anlamına gelmektedir -
+ İbranice'de!
+ </para>
- <para>
- <quote>Paamayim Nekudotayim</quote> ilk bakışta iki nokta üst üste için
- garip bir adlandırma gibi gözükebilir. Ancak, Zend Engine 0.5 (php 3'ün
- kalbidir) yazıldığı esnada Zend ekibinin kullanmak istediği terim bu
- oldu. Esasında bu iki sözcük de iki nokta çifti anlamına gelmektedir -
- İbranice'de!
- </para>
-
- <example>
- <title>- Sınıf tanımı dışında ::</title>
- <programlisting role="php">
+ <example>
+ <title>- Sınıf tanımı dışında ::</title>
+ <programlisting role="php">
<![CDATA[
<?php
class Sınıfım {
@@ -46,18 +46,19 @@
echo Sınıfım::SABİT_DEĞER;
?>
]]>
- </programlisting>
- </example>
+ </programlisting>
+ </example>
- <para>
- Bir sınıfın özellik ve yöntemlerine bu işleç sayesinde sınıfın içinden
- erişilmek istendiğinde işlecin solunda <varname>self</varname> veya
- <varname>parent</varname> anahtar sözcüğü kullanılır.
- </para>
+ <para>
+ Bir sınıfın özellik ve yöntemlerine bu işleç sayesinde sınıfın içinden
+ erişilmek istendiğinde işlecin solunda <varname>self</varname>,
+ <varname>parent</varname> veya <varname>static</varname> anahtar sözcüğü
+ kullanılır.
+ </para>
- <example>
- <title>- Sınıf tanımı içinde ::</title>
- <programlisting role="php">
+ <example>
+ <title>- Sınıf tanımı içinde ::</title>
+ <programlisting role="php">
<![CDATA[
<?php
class BaşkaSınıf extends Sınıfım
@@ -71,27 +72,27 @@
}
$sınıfadı = 'BaşkaSınıf';
-echo $sınıfadı::ikiNoktaÇifti(); // PHP 5.3.0 ve sonrası
+$sınıfadı::ikiNoktaÇifti(); // PHP 5.3.0 ve sonrası
BaşkaSınıf::ikiNoktaÇifti();
?>
]]>
- </programlisting>
- </example>
+ </programlisting>
+ </example>
- <para>
- Çocuk sınıf ebeveyninin yöntem tanımlarından birini geçersiz kıldığı
- takdirde PHP ebeveyne ait yöntemi çağıramayacaktır. Ebeveynin yönteminin
- çağrılıp çağrılmayacağı çocuk sınıfın inisiyatifindedir. Bu durum aynı
- zamanda <link linkend="language.oop5.decon">Kurucular ve
- Yıkıcılar</link>, <link linkend="language.oop5.overloading">Aşırı
- Yükleme</link> ve <link linkend="language.oop5.magic">Sihirli</link>
- yöntem tanımları için de geçerlidir.
- </para>
+ <para>
+ Çocuk sınıf ebeveyninin yöntem tanımlarından birini geçersiz kıldığı
+ takdirde PHP ebeveyne ait yöntemi çağıramayacaktır. Ebeveynin yönteminin
+ çağrılıp çağrılmayacağı çocuk sınıfın inisiyatifindedir. Bu durum aynı
+ zamanda <link linkend="language.oop5.decon">Kurucular ve
+ Yıkıcılar</link>, <link linkend="language.oop5.overloading">Aşırı
+ Yükleme</link> ve <link linkend="language.oop5.magic">Sihirli</link>
+ yöntem tanımları için de geçerlidir.
+ </para>
- <example>
- <title>- Ebeveynin yöntemini çağırmak</title>
- <programlisting role="php">
+ <example>
+ <title>- Ebeveynin yöntemini çağırmak</title>
+ <programlisting role="php">
<![CDATA[
<?php
class Sınıfım
@@ -116,10 +117,14 @@
$class->işlevim();
?>
]]>
- </programlisting>
- </example>
+ </programlisting>
+ </example>
+ <para>
+ Ayrıca, <link linkend="language.oop5.basic.class.this">duruk çağrı hilesi
+ örnekleri</link>ne de bakınız.
+ </para>
- </sect1>
+</sect1>
<!-- Keep this comment at the end of the file
Local variables: