com doc/tr: update for sync with English docs.: language/oop5/abstract.xml language/oop5/cloning.xml language/oop5/decon.xml language/oop5/final.xml language/oop5/magic.xml language/oop5/overloading.xml language/oop5/properties.xml language/oop5/traits.xml

[email protected] (Nilgün Belma Bugüner) Tue, 12 Jan 2021 04:20:05 +0000
Newsgroups php.doc.tr
Message-ID <[email protected]>
Commit:    bbb4c0c9f20d020a26842991e1b9cabbe538d114
Author:    Nilgün Belma Bugüner <[email protected]>         Tue, 12 Jan 2021 07:20:05 +0300
Parents:   f5a0ea7159ad3d4727d23090cc445ce55b5d2e62
Branches:  master

Link:       http://git.php.net/?p=doc/tr.git;a=commitdiff;h=bbb4c0c9f20d020a26842991e1b9cabbe538d114

Log:
update for sync with English docs.

Changed paths:
  M  language/oop5/abstract.xml
  M  language/oop5/cloning.xml
  M  language/oop5/decon.xml
  M  language/oop5/final.xml
  M  language/oop5/magic.xml
  M  language/oop5/overloading.xml
  M  language/oop5/properties.xml
  M  language/oop5/traits.xml
diff_bbb4c0c9f20d020a26842991e1b9cabbe538d114.txt (text/plain, 28.4 KB)
diff --git a/language/oop5/abstract.xml b/language/oop5/abstract.xml
index 74bdff36..0056a9d1 100644
--- a/language/oop5/abstract.xml
+++ b/language/oop5/abstract.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: b7031192a2b7d97257d3e303b8eb0f4692819fee Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: d152dc10216193f0d98b3ead2cfcbaaa3b99c06d Maintainer: nilgun Status: ready -->
 <!-- CREDITS: tpug, sezer -->
  <sect1 xml:id="language.oop5.abstract" xmlns="http://docbook.org/ns/docbook">
   <title>Sınıf Soyutlama</title>
 
   <para>
     PHP 5, soyut sınıf ve yöntemlerin kullanımını mümkün kılmıştır. Soyut
-    olarak tanımlanmış bir sınıf örneklenemeyebilir ve en az bir soyut yöntem 
-    içeren bir sınıf da soyut olmalıdır. Soyut olarak tanımlanmış yöntemler o 
+    olarak tanımlanmış bir sınıf örneklenemez ve en az bir soyut yöntem
+    içeren bir sınıf da soyut olmalıdır. Soyut olarak tanımlanmış yöntemler o
     yöntemlerin imzasıdırlar, gerçeklemenin bütününü temsil edemezler.
   </para>
 
@@ -20,11 +20,11 @@
     >görünürlükle</link> tanımlanması gerekir. Örneğin, soyut yöntem
     <code>protected</code> olarak tanımlanmışsa, işlev gerçeklenimi
     <code>private</code> değil, <code>protected</code> ya da
-    <code>public</code> olarak tanımlanmalıdır. Bundan başka, yöntemlerin 
-    imzaları da eşleşmelidir, örneğin gerekli değiştirgelerin tür ipuçları 
-    ve sayıları aynı olmalıdır. Örneğin bir çocuk sınıf seçimlik bir 
-    değiştirge tanımlarken soyut yöntem bunu yapmıyorsa bir imza uyumsuzluğu 
-    yoktur. PHP5.4'te bu kuruculara da uygulanır. PHP 5.4 öncesinde kurucu 
+    <code>public</code> olarak tanımlanmalıdır. Bundan başka, yöntemlerin
+    imzaları da eşleşmelidir, örneğin gerekli değiştirgelerin tür ipuçları
+    ve sayıları aynı olmalıdır. Örneğin bir çocuk sınıf seçimlik bir
+    değiştirge tanımlarken soyut yöntem bunu yapmıyorsa bir imza uyumsuzluğu
+    yoktur. PHP5.4'te bu kuruculara da uygulanır. PHP 5.4 öncesinde kurucu
     imzaları farklı olabilirdi.
   </para>
 
@@ -88,7 +88,7 @@ FOO_SomutSınıf2
    </screen>
   </example>
   <example>
-   <title>Soyut sınıf örneği</title>
+   <title>-Soyut sınıf örneği</title>
     <programlisting role="php">
 <![CDATA[
 <?php
@@ -102,7 +102,7 @@ abstract class AbstractClass
 class ConcreteClass extends AbstractClass
 {
 
-    // Çocuk sınıfımız seçimlik değiştirgeleri tanımlamalı 
+    // Çocuk sınıfımız seçimlik değiştirgeleri tanımlamalı
     // ebeveynin imzasındakileri değil
     public function prefixName($name, $separator = ".") {
         if ($name == "Pacman") {
diff --git a/language/oop5/cloning.xml b/language/oop5/cloning.xml
index ade469d0..ecaa5174 100644
--- a/language/oop5/cloning.xml
+++ b/language/oop5/cloning.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: 2de9c1a37be1c0cba843cd4880ad1b27d25a8fcd Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 9093ce1bc60f23330e92e99784eec74d315f151c Maintainer: nilgun Status: ready -->
 <!-- CREDITS: tpug, sezer -->
  <sect1 xml:id="language.oop5.cloning" xmlns="http://docbook.org/ns/docbook">
   <title>Nesne Kopyalama</title>
@@ -22,8 +22,8 @@
   <para>
    Bir nesnenin kopyası (mümkünse nesnenin
    <link linkend="object.clone">__clone()</link> yöntemini
-   çağıran) <emphasis>clone</emphasis> anahtar sözcüğü kullanılarak 
-   oluşturulur. Bir nesnenin <link linkend="object.clone">__clone()</link> 
+   çağıran) <emphasis>clone</emphasis> anahtar sözcüğü kullanılarak
+   oluşturulur. Bir nesnenin <link linkend="object.clone">__clone()</link>
    yöntemi doğrudan doğruya çağrılamaz.
   </para>
 
@@ -36,7 +36,7 @@ $nesnenin_kopyası = clone $object;
   </informalexample>
 
   <para>
-    Bir nesne kopyalandığında, PHP 5 nesnenin tüm özelliklerinin yüzeysel bir
+    Bir nesne kopyalandığında, PHP nesnenin tüm özelliklerinin yüzeysel bir
     kopyasını çıkartacaktır. Diğer değişkenlere birer gönderim olan tüm
     özellikler gönderim olarak kalacaktır.
   </para>
@@ -138,7 +138,7 @@ KopyalanabilirNesnem Object
 
   </example>
   <para>
-   PHP 7.0.0 yeni kopyalanmış bir nesnenin üyesine tek bir ifadede erişme 
+   PHP 7.0.0 yeni kopyalanmış bir nesnenin üyesine tek bir ifadede erişme
     imkanını sağladı:
   </para>
   <example>
diff --git a/language/oop5/decon.xml b/language/oop5/decon.xml
index 7cd3f466..e447bf15 100644
--- a/language/oop5/decon.xml
+++ b/language/oop5/decon.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: e4963bb8a4ac3a7af25c0ed2baf74a17d010e2f1 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 72880807af948704e2dd806ff38b08112d39469c Maintainer: nilgun Status: ready -->
 <!-- CREDITS: tpug, sezer -->
  <sect1 xml:id="language.oop5.decon" xmlns="http://docbook.org/ns/docbook">
   <title>Kurucular ve Yıkıcılar</title>
@@ -10,7 +10,6 @@
    <methodsynopsis xml:id="object.construct">
     <type>void</type><methodname>__construct</methodname>
     <methodparam rep="repeat"><type>mixed</type><parameter>değerler</parameter><initializer>""</initializer></methodparam>
-
    </methodsynopsis>
    <para>
     PHP geliştiricilerin sınıflar için kurucu yöntemler bildirmesine
diff --git a/language/oop5/final.xml b/language/oop5/final.xml
index de6c2d51..caebb801 100644
--- a/language/oop5/final.xml
+++ b/language/oop5/final.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: 33040b3b1b95210112f7b3b71f57a1c005de1a3b Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 1ae887f71cee9a2b171e8344cef33af689cfcde0 Maintainer: nilgun Status: ready -->
 <!-- CREDITS: tpug, sezer -->
  <sect1 xml:id="language.oop5.final" xmlns="http://docbook.org/ns/docbook">
   <title><code>final</code> Anahtar Sözcüğü</title>
   <para>
     PHP 5 ile birlikte gelen diğer bir yenilik <emphasis>final</emphasis> anahtar
     sözcüğüdür. Bu anahtar sözcükle tanımlanmış bir yöntemi çocuk sınıflar
-    geçersiz kılamazlar. Eğer bir sınıf kendini <emphasis>final</emphasis> 
+    geçersiz kılamazlar. Eğer bir sınıf kendini <emphasis>final</emphasis>
     sözcüğüyle tanımlamışsa o sınıf genişletilemez.
   </para>
 
@@ -64,8 +64,8 @@ class ÇocukSınıf extends AnaSınıf {
   </example>
   <note>
    <simpara>
-    Özellikler <code>final</code> olarak bildirilemez, sadece sınıflar ve
-    yöntemler <code>final</code> olarak bildirilebilir.
+    Özellikler ve sabitler <code>final</code> olarak bildirilemez,
+    sadece sınıflar ve yöntemler <code>final</code> olarak bildirilebilir.
    </simpara>
   </note>
  </sect1>
diff --git a/language/oop5/magic.xml b/language/oop5/magic.xml
index 35cc9554..88928220 100644
--- a/language/oop5/magic.xml
+++ b/language/oop5/magic.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: ec77057bf375ae4d50ffe24aa6f6a5dc629c10f3 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 9e0f03ac354d797d1d16c0fcc1663e5e170f2727 Maintainer: nilgun Status: ready -->
 <!-- CREDITS: tpug, sezer -->
  <sect1 xml:id="language.oop5.magic" xmlns="http://docbook.org/ns/docbook">
   <title>Sihirli Yöntemler</title>
@@ -15,6 +15,8 @@
    <link linkend="object.unset">__unset()</link>,
    <link linkend="object.sleep">__sleep()</link>,
    <link linkend="object.wakeup">__wakeup()</link>,
+   <link linkend="object.serialize">__serialize()</link>,
+   <link linkend="object.unserialize">__unserialize()</link>,
    <link linkend="object.tostring">__toString()</link>,
    <link linkend="object.invoke">__invoke()</link>,
    <link linkend="object.set-state">__set_state()</link>,
@@ -26,6 +28,13 @@
    ismi olarak kullanamazsınız.
   </para>
 
+  <note>
+   <simpara>
+    Tüm sihirli yöntemler <emphasis>KESİNLİKLE</emphasis>
+    <literal>public</literal> olarak bildirilmelidir.
+   </simpara>
+  </note>
+
   <caution>
    <simpara>
    PHP, <literal>__</literal> ile baslayan tüm işlev isimlerini sihirli
@@ -41,23 +50,26 @@
    </title>
 
    <methodsynopsis xml:id="object.sleep">
-    <modifier>public</modifier> <type>array</type><methodname>__sleep</methodname>
+    <modifier>public</modifier>
+    <type>array</type><methodname>__sleep</methodname>
     <void/>
    </methodsynopsis>
+
    <methodsynopsis xml:id="object.wakeup">
+    <modifier>public</modifier>
     <type>void</type><methodname>__wakeup</methodname>
     <void/>
    </methodsynopsis>
 
    <para>
-    <function>serialize</function> işlevi, sınıfınızın
+    <function>serialize</function> işlevi, sınıfın
     <link linkend="object.sleep">__sleep()</link>
     adında sihirli bir işleve sahip olup olmadığına bakar. Böyle bir işlev
-    varsa herhangi bir serileştirme işleminden önce bu işlev çalıştırılır.
-    Bu işlev ile nesne üzerinde temizlik yapabilir ve serileştirilmesi
+    varsa herhangi bir dizileştirme işleminden önce bu işlev çalıştırılır.
+    Bu işlev ile nesne üzerinde temizlik yapabilir ve dizileştirilmesi
     gereken nesnenin tüm değişken isimlerinin bir dizi halinde döndürülmesini
     sağlayabilirsiniz. Eğer işlev hiçbir şey döndürmemişse &null;
-    serileştirilir ve bir <constant>E_NOTICE</constant> çıktılanır.
+    dizileştirilir ve bir <constant>E_NOTICE</constant> çıktılanır.
    </para>
    <note>
     <para>
@@ -70,10 +82,9 @@
    </note>
    <para>
     <link linkend="object.sleep">__sleep()</link> işlevinin asıl kullanım
-    amacı askıdaki veriyi
-    göndermek gibi temizliğe benzer işlemler yapmaktır. Ayrıca, tümüyle
-    kaydedilmesi gerekmeyen büyük veri parçaları sözkonusu olduğunda da bu
-    işlevden yararlanabilirsiniz.
+    amacı askıdaki veriyi göndermek gibi temizliğe benzer işlemler yapmaktır.
+    Ayrıca, tümüyle kaydedilmesi gerekmeyen büyük veri parçaları sözkonusu
+    olduğunda da bu işlevden yararlanabilirsiniz.
    </para>
    <para>
     <function>unserialize</function> işlevi tersine bir işlem yaparak
@@ -84,9 +95,8 @@
    </para>
    <para>
     <link linkend="object.wakeup">__wakeup()</link> işlevinin asıl kullanım
-    amacı, serileştirme
-    sırasında kaybedilebilen veritabanı bağlantılarını yeniden oluşturmak ve
-    diğer ilklendirme işlemlerini yeniden yapmaktır.
+    amacı, dizileştirme sırasında kaybedilebilen veritabanı bağlantılarını
+    yeniden oluşturmak ve diğer ilklendirme işlemlerini yeniden yapmaktır.
    </para>
    <example>
     <title>- Uyutma ve uyandırma</title>
@@ -127,12 +137,125 @@ class Bağlantı
    </example>
   </sect2>
 
+  <sect2 xml:id="language.oop5.magic.serialize">
+   <title>
+    <link linkend="object.serialize">__serialize()</link> ve
+    <link linkend="object.unserialize">__unserialize()</link>
+   </title>
+
+   <methodsynopsis xml:id="object.serialize">
+    <modifier>public</modifier> <type>array</type><methodname>__serialize</methodname>
+    <void/>
+   </methodsynopsis>
+   <methodsynopsis xml:id="object.unserialize">
+    <modifier>public</modifier> <type>void</type><methodname>__unserialize</methodname>
+    <methodparam><type>array</type><parameter>data</parameter></methodparam>
+   </methodsynopsis>
+
+   <para>
+    <function>serialize</function> işlevi, sınıfın
+    <link linkend="object.serialize">__serialize()</link> sihirli adına
+    sahip bir işlevinin olup olmadığına bakar. Varsa, bu işlev herhangi
+    bir dizileştirmeden önce çalıştırılır. Nesnenin dizileştirilmiş biçimini
+    temsil eden ilişkisel bir anahtar/değer çiftleri dizisi oluşturmalı ve
+    döndürmelidir. Hiçbir dizi döndürülmezse, bir
+    <classname>TypeError</classname> yavrulanır.
+   </para>
+   <note>
+    <para>
+     Aynı nesnede hem <link linkend="object.serialize">__serialize()</link>
+     hem de <link linkend="object.sleep">__sleep()</link> tanımlanmışsa,
+     sadece <link linkend="object.serialize">__serialize()</link>
+     çağrılır. <link linkend="object.sleep">__sleep()</link> ise yok
+     sayılır. Nesne <link linkend="class.serializable">Serializable</link>
+     arayüzünü gerçekliyorsa, arayüzün <literal>serialize()</literal> yöntemi
+     yok sayılır ve yerine <link linkend="object.serialize">__serialize()</link>
+     kullanılır.
+    </para>
+   </note>
+   <para>
+    <link linkend="object.serialize">__serialize()</link> yönteminin
+    amaçlanan kullanımı, nesnenin dizileştirmeye uygun keyfi bir gösterimini
+    tanımlamaktır. Dizinin öğeleri, nesnenin özelliklerine karşılık gelebilir,
+    ancak bu gerekli değildir.
+   </para>
+   <para>
+    <function>unserialize</function> işlevi ise tersine sınıfın
+    <link linkend="object.unserialize">__unserialize()</link> sihirli adına
+    sahip bir işlevinin olup olmadığına bakar. Varsa, bu işlev
+    <link linkend="object.serialize">__serialize()</link> işlevinden
+    döndürülen geri yüklenmiş diziye aktarılır. Daha sonra nesnenin
+    özelliklerini uygun şekilde bu diziden geri yükleyebilir.
+   </para>
+   <note>
+    <para>
+     Aynı nesnede hem <link linkend="object.unserialize">__unserialize()</link>
+     hem de <link linkend="object.wakeup">__wakeup()</link> tanımlanmışsa,
+     yalnızca <link linkend="object.unserialize">__unserialize()</link>
+     çağrılır. <link linkend="object.wakeup">__wakeup()</link> ise yok sayılır.
+    </para>
+   </note>
+   <note>
+    <para>
+     Özellik PHP 7.4.0'dan beri kullanılabilmektedir.
+    </para>
+   </note>
+   <example>
+    <title>- Dizileştirme ve Nesneleştirme</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+class Connection
+{
+    protected $link;
+    private $dsn, $username, $password;
+
+    public function __construct($dsn, $username, $password)
+    {
+        $this->dsn = $dsn;
+        $this->username = $username;
+        $this->password = $password;
+        $this->connect();
+    }
+
+    private function connect()
+    {
+        $this->link = new PDO($this->dsn, $this->username, $this->password);
+    }
+
+    public function __serialize(): array
+    {
+        return [
+          'dsn' => $this->dsn,
+          'user' => $this->username,
+          'pass' => $this->password,
+        ];
+    }
+
+    public function __unserialize(array $data): void
+    {
+        $this->dsn = $data['dsn'];
+        $this->username = $data['user'];
+        $this->password = $data['pass'];
+
+        $this->connect();
+    }
+}?>
+]]>
+    </programlisting>
+   </example>
+  </sect2>
+
+
   <sect2 xml:id="language.oop5.magic.tostring">
    <title><link linkend="object.tostring">__toString()</link></title>
+
    <methodsynopsis xml:id="object.tostring">
-    <modifier>public</modifier> <type>string</type><methodname>__toString</methodname>
+    <modifier>public</modifier>
+    <type>string</type><methodname>__toString</methodname>
     <void/>
    </methodsynopsis>
+
    <para>
     <link linkend="object.tostring">__toString()</link> yöntemi, sınıf bir
     dizgeye dönüştürüldüğünde sınıfın nasıl tepki vereceğine karar vermeyi
@@ -142,9 +265,8 @@ class Bağlantı
    </para>
    <warning>
     <simpara>
-     You cannot throw an exception from within a
      <link linkend="object.tostring">__toString()</link> yöntemin içinden
-     bir istisna oluşturamazsınız. Bunu yapılması ölümcül hata ile
+     bir istisna yavrulatılamaz. Bunun yapılması ölümcül hata ile
      sonuçlanır.
     </simpara>
    </warning>
@@ -198,10 +320,12 @@ Merhaba
 
   <sect2 xml:id="language.oop5.magic.invoke">
    <title><link linkend="object.invoke">__invoke()</link></title>
+
    <methodsynopsis xml:id="object.invoke">
     <type>mixed</type><methodname>__invoke</methodname>
-    <methodparam choice="opt"><parameter>...</parameter></methodparam>
+    <methodparam rep="repeat"><parameter>values</parameter></methodparam>
    </methodsynopsis>
+
    <para>
     <link linkend="object.invoke">__invoke()</link> yöntemi, bir betik bir nesneyi bir işlev olarak çağırmaya çalışırsa çağrılır.
    </para>
@@ -240,10 +364,13 @@ bool(true)
 
   <sect2 xml:id="language.oop5.magic.set-state">
    <title><link linkend="object.set-state">__set_state()</link></title>
+
    <methodsynopsis xml:id="object.set-state">
-    <modifier>static</modifier> <type>object</type><methodname>__set_state</methodname>
+    <modifier>static</modifier>
+    <type>object</type><methodname>__set_state</methodname>
     <methodparam><type>array</type><parameter>özellikler</parameter></methodparam>
    </methodsynopsis>
+
    <para>
     Bu <link linkend="language.oop5.static">statik</link> yöntem, PHP 5.1.0
     sürümünden beri <function>var_export</function> tarafından ihraç edilen
@@ -317,10 +444,12 @@ object(A)#2 (2) {
 
   <sect2 xml:id="language.oop5.magic.debuginfo">
    <title><link linkend="object.debuginfo">__debugInfo()</link></title>
+
    <methodsynopsis xml:id="object.debuginfo">
     <type>array</type><methodname>__debugInfo</methodname>
     <void/>
    </methodsynopsis>
+
    <para>
     Gösterilmesi gereken özelliklerini döndürmek için bir nesne
     dökümleneceği zaman bu yöntem <function>var_dump</function> tarafından
@@ -330,7 +459,7 @@ object(A)#2 (2) {
     Bu özellik PHP 5.6.0 sürümünde eklendi.
    </para>
    <example>
-    <title><link linkend="object.debuginfo">__debugInfo()</link>
+    <title>- <link linkend="object.debuginfo">__debugInfo()</link>
       kullanımı</title>
     <programlisting role="php">
 <![CDATA[
diff --git a/language/oop5/overloading.xml b/language/oop5/overloading.xml
index 04be7bfa..20792fae 100644
--- a/language/oop5/overloading.xml
+++ b/language/oop5/overloading.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: 7850a1abc67b583007309a3c2fcaf5c8908b13c9 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 0c9761150371fbf66ded784d20b71ed4f758354e 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>
@@ -99,24 +99,25 @@
    </methodsynopsis>
 
    <para>
-    <link linkend="object.set">__set()</link> erişilemeyen özelliklere veri
-    yazarken çalıştırılır.
+    <link linkend="object.set">__set()</link> erişilemeyen (protected veya
+    private) veya varolmayan özelliklere veri yazarken çalıştırılır.
    </para>
 
    <para>
-    <link linkend="object.get">__get()</link> erişilemeyen özelliklerden veri
-    okurken devreye sokulur.
+    <link linkend="object.get">__get()</link> erişilemeyen (protected veya
+    private) veya varolmayan özelliklerden veri okurken devreye sokulur.
    </para>
 
    <para>
-    <link linkend="object.isset">__isset()</link> erişilemeyen özellikler için
-    <function>isset</function> veya <function>empty</function> çağrıldığında
-    tetiklenir.
+    <link linkend="object.isset">__isset()</link> erişilemeyen (protected veya
+    private) veya varolmayan özellikler için <function>isset</function> veya
+    <function>empty</function> çağrıldığında tetiklenir.
    </para>
 
    <para>
-    <link linkend="object.unset">__unset()</link> erişilemeyen özellikler için
-    <function>unset</function> kullanıldığında çağrılır.
+    <link linkend="object.unset">__unset()</link> erişilemeyen (protected veya
+    private) veya varolmayan özellikler için <function>unset</function>
+    kullanıldığında çağrılır.
    </para>
    <para>
     <varname>$isim</varname> değiştirgesi etkileşime girilecek özelliğin
diff --git a/language/oop5/properties.xml b/language/oop5/properties.xml
index 6b879a91..561cdf6c 100644
--- a/language/oop5/properties.xml
+++ b/language/oop5/properties.xml
@@ -1,19 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: fa568719e176d2a678f7d7511b2410ee3b792b90 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: nilgun Status: ready -->
  <sect1 xml:id="language.oop5.properties" xmlns="http://docbook.org/ns/docbook">
   <title>Özellikler</title>
 
   <para>
-   Sınıf üyesi değişkenlere "özellik" denir. Bunlara bazan "öznitelik" veya
-   "alan" dendiğini de görürsünüz, fakat bu kılavuzun amaçları doğrultusunda
-   biz "özellik" terimini kullanacağız. Bunlar normal değişken bildiriminin
-   önüne <literal>public</literal>, <literal>protected</literal>,
-   veya <literal>private</literal> anahtar sözcükleri getirilerek bildirilir.
-   Bildirim, bir ilklendirme olarak da yapılabilir; bu durumda bir sabit
-   değerle ilklendirme yapılmalıdır. Yani, derleme sırasında
-   değerlendirilebilmeli, çalışma anında değerlendirilebilecek bilgiler
-   içermemelidir.
+   Sınıf üyesi değişkenlere <emphasis>özellik</emphasis> denir. Bunlara
+   bazan <emphasis>öznitelik</emphasis> veya <emphasis>alan</emphasis>
+   dendiğini de görürsünüz, fakat bu kılavuzun amaçları doğrultusunda
+   biz <emphasis>özellik</emphasis> terimini kullanacağız. Bunlar normal
+   değişken bildiriminin önüne <literal>public</literal>,
+   <literal>protected</literal> veya <literal>private</literal> anahtar
+   sözcüklerinden biri ve ardından isteğe bağlı bir tür bildirimi getirilerek
+   bildirilir. Bu bildirim, bir ilklendirme olarak da yapılabilir; bu durumda
+   bir sabit değerle ilklendirme yapılmalıdır. Yani, derleme sırasında
+   değerlendirilebilmeli ve değerlendirilmek için çalışma anı bilgisine
+   bağlı olmamalıdır.
   </para>
   <para>
    <literal>public</literal>, <literal>protected</literal>,
@@ -101,15 +103,17 @@ EOD;
    </para>
   </note>
 
-  <para>
-   PHP 5.3.0 ve sonrasında,
-   <link linkend="language.types.string.syntax.nowdoc">Yorumsuz
-   metinler</link>, <link linkend="language.types.string.syntax.heredoc">
-   yorumlu metinler</link> ve özellik bildirimleri herhangi bir
-   statik veri bağlamında kullanılabilir.
-   <example>
-    <title>- Özellik ilklendirmede yorumsuz metin kullanımı</title>
-    <programlisting role="php">
+  <sect2 xml:id="language.oop5.properties.heredoc-nowdoc">
+   <title>Yorumlu ve Yorumsuz Metinler</title>
+   <para>
+    PHP 5.3.0 ve sonrasında,
+    <link linkend="language.types.string.syntax.nowdoc">Yorumsuz
+    metinler</link>, <link linkend="language.types.string.syntax.heredoc">
+    yorumlu metinler</link> ve özellik bildirimleri herhangi bir
+    statik veri bağlamında kullanılabilir.
+    <example>
+     <title>- Özellik ilklendirmede yorumsuz metin kullanımı</title>
+     <programlisting role="php">
 <![CDATA[
 <?php
 class foo {
@@ -123,14 +127,211 @@ EOT;
 }
 ?>
 ]]>
-    </programlisting>
-   </example>
-  </para>
-  <note>
+     </programlisting>
+    </example>
+   </para>
+   <note>
+    <para>
+     Yorumlu ve yorumsuz metin desteği PHP 5.3.0'da eklenmiştir.
+    </para>
+   </note>
+  </sect2>
+
+  <sect2 xml:id="language.oop5.properties.typed-properties">
+   <title>Tür Bildirimleri</title>
    <para>
-    Yorumlu ve yorumsuz metin desteği PHP 5.3.0'da eklenmiştir.
+    PHP 7.4.0 ve sonrasında özellik tanımı tür bildirimi içerebilmektedir.
+    <example>
+     <title>- Tür ile özellik bildirimi</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+
+class User
+{
+    public int $id;
+    public ?string $name;
+
+    public function __construct(int $id, ?string $name)
+    {
+        $this->id = $id;
+        $this->name = $name;
+    }
+}
+
+$user = new User(1234, null);
+
+var_dump($user->id);
+var_dump($user->name);
+
+?>
+]]>
+     </programlisting>
+     &example.outputs;
+     <screen>
+<![CDATA[
+int(1234)
+NULL
+]]>
+     </screen>
+    </example>
    </para>
-  </note>
+
+   <para>
+    Tür bildirimli özellikler erişilmeden önce ilklendirilmelidir, aksi
+    takdirde bir <classname>Error</classname> yavrulanır.
+    <example>
+      <title>- Özelliklere erişim</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+
+class Shape
+{
+    public int $numberOfSides;
+    public string $name;
+
+    public function setNumberOfSides(int $numberOfSides): void
+    {
+        $this->numberOfSides = $numberOfSides;
+    }
+
+    public function setName(string $name): void
+    {
+        $this->name = $name;
+    }
+
+    public function getNumberOfSides(): int
+    {
+        return $this->numberOfSides;
+    }
+
+    public function getName(): string
+    {
+        return $this->name;
+    }
+}
+
+$triangle = new Shape();
+$triangle->setName("triangle");
+$triangle->setNumberofSides(3);
+var_dump($triangle->getName());
+var_dump($triangle->getNumberOfSides());
+
+$circle = new Shape();
+$circle->setName("circle");
+var_dump($circle->getName());
+var_dump($circle->getNumberOfSides());
+?>
+]]>
+     </programlisting>
+     &example.outputs;
+     <screen>
+<![CDATA[
+string(8) "triangle"
+int(3)
+string(6) "circle"
+
+Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be accessed before initialization
+]]>
+     </screen>
+    </example>
+   </para>
+   <sect3 xml:id="language.oop5.properties.typed-properties.valid-types">
+    <title>Geçerli özellik türleri</title>
+    <informaltable>
+     <tgroup cols="3">
+      <thead>
+       <row>
+        <entry>Tür</entry>
+        <entry>Açıklama</entry>
+        <entry>En küçük PHP sürümü</entry>
+       </row>
+      </thead>
+      <tbody>
+       <row>
+        <entry><type>bool</type></entry>
+        <entry>
+         Özellik <type>bool</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><type>int</type></entry>
+        <entry>
+         Özellik <type>int</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><type>float</type></entry>
+        <entry>
+         Özellik <type>float</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><type>string</type></entry>
+        <entry>
+         Özellik <type>string</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><type>array</type></entry>
+        <entry>
+         Özellik <type>array</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><literal>object</literal></entry>
+        <entry>
+         Özellik <type>object</type> türünde olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><literal>iterable</literal></entry>
+        <entry>
+         Özellik ya <type>array</type> türünde olmalı ya da bir
+         <interfacename>Traversable</interfacename> örneği olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><literal>self</literal></entry>
+        <entry>
+         Özellik tanımlandığı sınıfın bir örneği olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry><literal>parent</literal></entry>
+        <entry>
+         Özellik tanımlandığı sınıfın ebeveyninin bir örneği olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry>Sınıf/arayüz ismi</entry>
+        <entry>
+         Özellik, ismi verilen sınıf veya arayüzün bir örneği olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+       <row>
+        <entry>?type</entry>
+        <entry>
+         Özellik belirtilen türde veya &null; olmalıdır.
+        </entry>
+        <entry>PHP 7.4.0</entry>
+       </row>
+      </tbody>
+     </tgroup>
+    </informaltable>
+   </sect3>
+  </sect2>
  </sect1>
 
 <!-- Keep this comment at the end of the file
diff --git a/language/oop5/traits.xml b/language/oop5/traits.xml
index a2b76a43..d35d77ac 100644
--- a/language/oop5/traits.xml
+++ b/language/oop5/traits.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: 7ee0da6a0250d01f4fd96d3c20d36375137b0b06 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 796ebb7fa127283377acf69fa9a9c3637ae2cd97 Maintainer: nilgun Status: ready -->
  <sect1 xml:id="language.oop5.traits" xmlns="http://docbook.org/ns/docbook">
   <title>Nitelikler</title>
   <para>