svn: /phpdoc/tr/trunk/language/oop5/ constants.xml decon.xml final.xml interfaces.xml iterations.xml
[email protected] (Nilgün Belma Bugüner)
| Newsgroups | php.doc.tr |
|---|---|
| Message-ID | <[email protected]> |
nilgun Wed, 10 Oct 2018 07:00:36 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=345798
Log:
update for sync with English docs.
Changed paths:
U phpdoc/tr/trunk/language/oop5/constants.xml
U phpdoc/tr/trunk/language/oop5/decon.xml
U phpdoc/tr/trunk/language/oop5/final.xml
U phpdoc/tr/trunk/language/oop5/interfaces.xml
U phpdoc/tr/trunk/language/oop5/iterations.xml
svn-diffs-345798.txt
(text/x-diff, 18.7 KB)
Modified: phpdoc/tr/trunk/language/oop5/constants.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/constants.xml 2018-10-08 13:02:51 UTC (rev 345797)
+++ phpdoc/tr/trunk/language/oop5/constants.xml 2018-10-10 07:00:36 UTC (rev 345798)
@@ -1,28 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 345616 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.constants" xmlns="http://docbook.org/ns/docbook">
<title>Sınıf Sabitleri</title>
<para>
- Sabitlerin her sınıf için ayrı ayrı tanımlanabilmesi mümkündür. Sabitler
- diğer değişkenlerden tanımlanmaları ve kullanılmaları sırasında başlarına
- getirilmeyen <varname>$</varname> imi sayesinde ayrılırlar.
+ Sabitlerin her sınıf için ayrı ayrı tanımlanabilmesi mümkündür. Sabitler
+ diğer değişkenlerden tanımlanmaları ve kullanılmaları sırasında başlarına
+ getirilmeyen <varname>$</varname> imi sayesinde ayrılırlar.
+ Sabit sınıflarının öntanımlı görünülüğü <literal>public</literal>'tir.
</para>
<para>
- Değer, örneğin, bir değişken, bir sınıf özelliği, bir matematiksel işlemin
- sonucu veya bir işlev çağrısı değil, bir <literal>sabit</literal> ifade
- olmalıdır.
+ Değer, örneğin, bir değişken, bir sınıf özelliği, bir matematiksel işlemin
+ sonucu veya bir işlev çağrısı değil, bir <literal>sabit</literal> ifade
+ olmalıdır.
</para>
<para>
- Ayrıca, sınıf arayüzlerinin de kendi sabitlerinin olması mümkündür.
- Örnekler için <link linkend="language.oop5.interfaces">Nesne
- Arayüzleri</link> belgesine bakınız.
+ Ayrıca, sınıf arayüzlerinin de kendi sabitlerinin olması mümkündür.
+ Örnekler için <link linkend="language.oop5.interfaces">Nesne
+ Arayüzleri</link> belgesine bakınız.
</para>
<para>
- PHP 5.3.0'dan itibaren, bir sınıfa bir değişken kullanarak atıfta bulunmak mümkündür. Değişkenin değeri, <literal>self</literal>,
- <literal>parent</literal>, <literal>static</literal> gibi bir anahtar sözcük olamaz.
+ PHP 5.3.0'dan itibaren, bir sınıfa bir değişken kullanarak atıfta bulunmak
+ mümkündür. Değişkenin değeri, <literal>self</literal>,
+ <literal>parent</literal>, <literal>static</literal> gibi bir anahtar sözcük
+ olamaz.
</para>
+ <para>
+ Sınıf sabitlerinin her sınıf örneği için değil her sınıf için bir kere
+ ayrıldığını unutmayın.
+ </para>
<example>
<title> - Bir sabitin tanımlanması ve kullanımı</title>
<programlisting role="php">
@@ -30,10 +37,10 @@
<?php
class MyClass
{
- const constant = 'sabit değer';
+ const CONSTANT = 'sabit değer';
function showConstant() {
- echo self::constant . "\n";
+ echo self::CONSTANT . "\n";
}
}
@@ -40,12 +47,12 @@
echo MyClass::constant . "\n";
$classname = "MyClass";
-echo $classname::constant . "\n"; // PHP 5.3.0'dan itibaren
+echo $classname::CONSTANT . "\n"; // PHP 5.3.0'dan itibaren
$class = new MyClass();
$class->showConstant();
-echo $class::constant."\n"; // PHP 5.3.0'dan itibaren
+echo $class::CONSTANT."\n"; // PHP 5.3.0'dan itibaren
?>
]]>
</programlisting>
@@ -58,26 +65,101 @@
<?php
class foo {
// PHP 5.3.0'dan itibaren
- const bar = <<<'EOT'
+ const BAR = <<<'EOT'
bar
EOT;
+ // PHP 5.3.0'dan itibaren
+ const BAZ = <<<EOT
+baz
+EOT;
}
?>
]]>
</programlisting>
- <para>
- Duruk veri bağlamında yorumlanan çok satırlı metinler değil
- (heredoc), yorumlanmayan çok satırlı metinler (nowdoc)
- kullanılabilir.
- </para>
</example>
<note>
<para>
- <link linkend="language.types.string.syntax.nowdoc">Yorumlanmayan çok
- satırlı metin (nowdoc)</link> desteği 5.3.0'da
- eklenmiştir.
+ Duruk veri bağlamında yorumlanan çok satırlı metinler (heredoc) ve
+ yorumlanmayan çok satırlı metinlerle (nowdoc) ssbitlerin ilklendirilmesi
+ desteği desteği 5.3.0'da eklenmiştir.
</para>
</note>
+ <para>
+ Özel <constant>::class</constant> sabiti desteği 5.5.0'da eklenmiş olup,
+ derleme sırasında tamamen nitelenmiş sınıf ismi çözünürlüğü mümkün
+ kılınmıştır ve isim alanlı sınıflar için kulllanışlıdır:
+ </para>
+ <example>
+ <title>- İsim alanlı ::class örneği</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+namespace foo {
+ class bar {
+ }
+
+ echo bar::class; // foo\bar
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ <example>
+ <title>Sabit ifadesi örneği</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+const BİR = 1;
+
+class foo {
+ // PHP 5.6.0 ve sonrası
+ const İKİ = BİR * 2;
+ const ÜÇ = BİR + self::İKİ;
+ const CÜMLE = 'ÜÇ için değer: '.self::THREE;
+}
+?>
+]]>
+ </programlisting>
+ <para>
+ Bir sınıf sabiti bağlamında sayısal ve dize sabitlerini ve/veya sabitleri
+ içeren bir sayısal ifade sağlamak mümkündür.
+ </para>
+ </example>
+ <note>
+ <para>
+ Sabit ifadesi desteği PHP 5.6.0'da eklendi.
+ </para>
+ </note>
+
+ <example>
+ <title>- Sınıf sabiti görünürlük değiştiricileri</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+ // PHP 7.1.0 ve sonrası
+ public const BAR = 'bar';
+ private const BAZ = 'baz';
+}
+echo Foo::BAR, PHP_EOL;
+echo Foo::BAZ, PHP_EOL;
+?>
+]]>
+ </programlisting>
+ &example.outputs.71;
+ <screen>
+<![CDATA[
+bar
+
+Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …
+]]>
+ </screen>
+ </example>
+ <note>
+ <para>
+ Sınıf sabitlerinde görünürlük değiştiricileri desteği PHP 7.1.0'da eklendi.
+ </para>
+ </note>
</sect1>
<!-- Keep this comment at the end of the file
Modified: phpdoc/tr/trunk/language/oop5/decon.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/decon.xml 2018-10-08 13:02:51 UTC (rev 345797)
+++ phpdoc/tr/trunk/language/oop5/decon.xml 2018-10-10 07:00:36 UTC (rev 345798)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 322134 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 345581 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>
@@ -9,7 +9,7 @@
<title>Kurucular</title>
<methodsynopsis xml:id="object.construct">
<type>void</type><methodname>__construct</methodname>
- <methodparam choice="opt"><type>mixed</type><parameter>değiştirge</parameter></methodparam>
+ <methodparam choice="opt"><type>mixed</type><parameter>değiştirge</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
@@ -23,7 +23,9 @@
Çocuk sınıflardan kurucusu olanlar için örtük olarak ebeveyn sınıfın
kurucusu çağrılmaz. Ebeveyn sınıfın kurucusunu çocuk sınıftan çağırmak
için, çocuk sınıf içinden <function>parent::__construct</function>
- çağrısı yapılması gerekir.
+ çağrısı yapılması gerekir. Çocuğun bir kurucu tanımlamaması halinde,
+ normal sınıf yöntemi gibi (eğer private olarak tanımlanmadıysa) ana
+ sınıftan miras alınabilir.
</simpara>
</note>
<example>
@@ -33,25 +35,36 @@
<?php
class AnaSınıf {
function __construct() {
- print "AnaSınıf kurucusundayız\n";
+ print "AnaSınıf kurucusundayız\n";
}
}
class AltSınıf extends AnaSınıf {
function __construct() {
- parent::__construct();
- print "AltSınıf kurucusundayız\n";
+ parent::__construct();
+ print "AltSınıf kurucusundayız\n";
}
}
+class DiğerAltSınıf extends AnaSınıf {
+ // AnaSınıf'ın kurucusunu miras alır
+}
+
+// AnaSınıf kurucusunda
$obj = new AnaSınıf();
+
+// AnaSınıf kurucusunda
+// AltSınıf kurucusunda
$obj = new AltSınıf();
+
+// AnaSınıf kurucusunda
+$obj = new DiğerAltSınıf();
?>
]]>
</programlisting>
</example>
<para>
- Geriye dönük uyumluluk için, PHP 5 belirtilen sınıfa ait bir
+ PHP 3 ve 4 ile geriye dönük uyumluluk için, PHP 5 belirtilen sınıfa ait bir
<link linkend="object.construct">__construct()</link> yöntemi bulamazsa,
sınıfın ismine bakarak eski tarz bir kurucu arayacaktır. Dolayısıyla,
uyumluluk sorunu yaşayacağınız tek durum sınıf dahilinde
@@ -58,6 +71,16 @@
<link linkend="object.construct">__construct()</link>
isimli bir yöntemin amacı dışında kullanılması olabilir.
</para>
+ <!-- Not using an entity because I want specific wording here, since we're
+ not deprecating constructors in general. -->
+ <warning>
+ <simpara>
+ PHP 7.0'da eski tarz kurucuların <emphasis>kullanımı
+ önerilmemekte</emphasis> olup ileri sürümlerde kaldırılacaktır.
+ Yeni kodlarda daima <link linkend="object.construct">__construct()</link>
+ kullanmalısınız.
+ </simpara>
+ </warning>
<para>
Diğer yöntemlerin tersine,
<link linkend="object.construct">__construct()</link> ebeveyn
@@ -112,17 +135,17 @@
function __construct()
{
print "Kurucu çalıştı\n";
- $this->name = "YıkıcıSınıf";
}
function __destruct()
{
- print "" . $this->name . " yok ediliyor\n";
+ print "" . __CLASS__ . " yok ediliyor\n";
}
}
$obj = new YıkıcıSınıf();
?>
+
]]>
</programlisting>
</example>
@@ -130,7 +153,8 @@
Kurucularda olduğu gibi ebeveyn yıkıcılar çocuk sınıflar için dolaylı
olarak çağrılmayacaktır. Ebeveyn sınıfın yıkıcısının çalışması için çocuk
sınıfın yıkıcısından <function>parent::__destruct</function> çağrısının
- yapılması gerekir.
+ yapılması gerekir. Ayrıca, kuruculardaki gibi, bir çocuk sınıf
+ kendisininkini gerçeklemediyse ebeveyninin yıkıcısını miras alabilir.
</para>
<para>
Betiğin icrası <function>exit</function> kullanılarak durdurulsa bile
Modified: phpdoc/tr/trunk/language/oop5/final.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/final.xml 2018-10-08 13:02:51 UTC (rev 345797)
+++ phpdoc/tr/trunk/language/oop5/final.xml 2018-10-10 07:00:36 UTC (rev 345798)
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 331135 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 <code>final</code> anahtar
+ 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 <code>final</code> sözcüğüyle
- tanımlamışsa o sınıf genişletilemez.
+ 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>
<example>
Modified: phpdoc/tr/trunk/language/oop5/interfaces.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/interfaces.xml 2018-10-08 13:02:51 UTC (rev 345797)
+++ phpdoc/tr/trunk/language/oop5/interfaces.xml 2018-10-10 07:00:36 UTC (rev 345798)
@@ -1,23 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 345055 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.interfaces" xmlns="http://docbook.org/ns/docbook">
<title>Nesne Arayüzleri</title>
<para>
Nesne arayüzleri, bir sınıfın gerçeklemesi gereken yöntemlerin
- belirtildiği kodu, bu yöntemlerin nasıl yönetileceğini tanımlamaksızın
+ belirtildiği kodu, bu yöntemlerin nasıl gerçekleneceğini tanımlamaksızın
oluşturmanıza imkan sağlar.
</para>
<para>
- Arayüzler, standart sınıflardan farklı olarak hiçbir yöntemin içeriği
- tanımlanmaksızın <literal>interface</literal> anahtar sözcüğü kullanılarak
- tanımlanırlar.
+ Arayüzler, sınıflardan farklı olarak <literal>class</literal> yerine
+ <literal>interface</literal> anahtar sözcüğü kullanılarak ve içeriğinde
+ hiçbir tanımlı yöntem olmaksızın tanımlanırlar.
</para>
<para>
Bir arayüzdeki tüm yöntemler, arayüzün doğası gereği <code>public</code>
olarak bildirilmelidir.
</para>
+ <para>
+ Bazı bağlamlarda, örneğin imalat kipinde kullanım için kullanışlı
+ olabilecek bir arayüz içinde bir
+ <link linkend="language.oop5.decon.constructor">kurucu</link> bildirmek
+ mümkündür.
+ </para>
<sect2 xml:id="language.oop5.interfaces.implements">
<title><code>implements</code> işleci</title>
<para>
@@ -28,8 +34,9 @@
</para>
<note>
<para>
- Belirsizliğe yol açacağından, bir sınıf aynı işlev isimlerine sahip iki
- arayüz gerçekleyemez.
+ PHP 5.3.9 öncesinde, belirsizliğe yol açacağından, bir sınıf, aynı isme sahip
+ yöntem içeren iki arayüzü gerçekleyemezdi. PHP'nin en son sürümleri aynı imzaya
+ sahip oldukları takdirde aynı isimli yöntemlere izin vermektedir.
</para>
</note>
<note>
@@ -48,10 +55,10 @@
<sect2 xml:id="language.oop5.interfaces.constants">
<title>Sabitler<literal></literal></title>
<para>
- Arayüzlerin sabitlerinin olması mümkündür. Arayüz sabitleri tıpkı <link
- linkend="language.oop5.constants">sınıf sabitleri</link> gibi çalışırlar.
- Kendilerini miras alan sınıflar veya arayüzler tarafından geçersiz
- kılınamazlar.
+ Arayüzlerin sabitlerinin olması mümkündür. Arayüz sabitleri, kendilerini
+ miras alan sınıflar veya arayüzler tarafından geçersiz kılınamamaları
+ dışında tıpkı <link linkend="language.oop5.constants">sınıf sabitleri</link>
+ gibi çalışır.
</para>
</sect2>
<sect2 xml:id="language.oop5.interfaces.examples">
@@ -201,7 +208,6 @@
// Sabitler geçersiz kılınamayacağından bu çalışmaz.
-// Sınıf sabitleri için de bu böyledir.
class b implements a
{
const b = 'Sınıf sabiti';
Modified: phpdoc/tr/trunk/language/oop5/iterations.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/iterations.xml 2018-10-08 13:02:51 UTC (rev 345797)
+++ phpdoc/tr/trunk/language/oop5/iterations.xml 2018-10-10 07:00:36 UTC (rev 345798)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 297028 Maintainer: nilgun Status: ready -->
+<!-- EN-Revision: 338507 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.iterations" xmlns="http://docbook.org/ns/docbook">
<title>Nesne Yineleme</title>
@@ -27,7 +27,7 @@
function iterateVisible() {
echo "MyClass::iterateVisible:\n";
- foreach($this as $key => $value) {
+ foreach ($this as $key => $value) {
print "$key => $value\n";
}
}
@@ -66,12 +66,14 @@
<para>
Çıktıdan görüleceği gibi, &foreach; erişilebilir olan tüm <link
- linkend="language.oop5.visibility">görünür</link> değişkenleri yineledi.
- Bir adım öteye giderek, PHP'nin yerleşik <link
- linkend="language.oop5.interfaces">arayüz</link>lerinden biri olan
- <varname>Iterator</varname>'ü gerçekleyebilirsiniz.
+ linkend="language.oop5.visibility">görünür</link> özellikleri yineledi.
+ </para>
+ <para>
+ Bir adım öteye giderek, <varname>Iterator</varname> <link
+ linkend="language.oop5.interfaces">arayüzü</link> gerçeklenebilir.
<varname>Iterator</varname> kullanılarak, hangi nesnenin nasıl
- yineleneceğine bir nesnenin karar verebilmesi mümkündür.
+ yineleneceğine ve her yinelemede hangi değerlerin kullanılacağına bir
+ nesnenin karar verebilmesi mümkündür.
</para>
<example>
@@ -90,31 +92,37 @@
}
}
- public function rewind() {
+ public function rewind()
+ {
echo "başa al\n";
reset($this->var);
}
- public function current() {
+ public function current()
+ {
$var = current($this->var);
echo "mevcut: $var\n";
return $var;
}
- public function key() {
+ public function key()
+ {
$var = key($this->var);
echo "anahtar: $var\n";
return $var;
}
- public function next() {
+ public function next()
+ {
$var = next($this->var);
echo "sonraki: $var\n";
return $var;
}
- public function valid() {
- $var = $this->current() !== false;
+ public function valid()
+ {
+ $key = key($this->var);
+ $var = ($key !== NULL && $key !== FALSE);
echo "geçerli: {$var}\n";
return $var;
}
@@ -133,25 +141,21 @@
<screen role="php">
<![CDATA[
başa al
-mevcut: 1
geçerli: 1
mevcut: 1
anahtar: 0
0: 1
sonraki: 2
-mevcut: 2
geçerli: 1
mevcut: 2
anahtar: 1
1: 2
sonraki: 3
-mevcut: 3
geçerli: 1
mevcut: 3
anahtar: 2
2: 3
sonraki:
-mevcut:
geçerli:
]]>
</screen>
@@ -159,10 +163,14 @@
</example>
<para>
- Ayrıca, kendi sınıfınızı, <varname>Iterator</varname> işlevlerinin tümünü
- her defasında yeniden tanımlamadan, PHP 5 ile birlikte gelen
- <varname>IteratorAggregate</varname> arayüzünü gerçekleyerek
- tanımlayabilirsiniz.
+ <interfacename>IteratorAggregate</interfacename>
+ <link linkend="language.oop5.interfaces">arayüzü</link>,
+ <interfacename>Iterator</interfacename> yöntemlerinin tümünü gerçeklemek
+ için de kullanılabilir. <interfacename>IteratorAggregate</interfacename>
+ sadece <interfacename>Iterator</interfacename> arayüzünü gerçekleyen
+ sınıfın bir örneğini döndüren
+ <methodname>IteratorAggregate::getIterator</methodname> yönteminin
+ gerçeklenmesini gerektirir.
</para>
<example>
@@ -234,6 +242,13 @@
linkend="spl.iterators"/> bölümüne bakınız.
</para>
</note>
+ <note>
+ <para>
+ PHP 5.5 ve sonrası kullanıcıları, yineleyicileri tanımlamanın başka bir
+ yolu olarak <link linkend="language.generators">üreteçleri</link>
+ inceleyebilir.
+ </para>
+ </note>
</sect1>