svn: /phpdoc/tr/trunk/language/oop5/ anonymous.xml changelog.xml serialization.xml
[email protected] (Nilgün Belma Bugüner)
| Newsgroups | php.doc.tr |
|---|---|
| Message-ID | <[email protected]> |
nilgun Sat, 06 Oct 2018 17:00:07 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=345789
Log:
New translations.
Changed paths:
A phpdoc/tr/trunk/language/oop5/anonymous.xml
A phpdoc/tr/trunk/language/oop5/changelog.xml
A phpdoc/tr/trunk/language/oop5/serialization.xml
svn-diffs-345789.txt
(text/x-diff, 17.4 KB)
Added: phpdoc/tr/trunk/language/oop5/anonymous.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/anonymous.xml (rev 0)
+++ phpdoc/tr/trunk/language/oop5/anonymous.xml 2018-10-06 17:00:07 UTC (rev 345789)
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 339452 Maintainer: nilgun Status: ready -->
+<sect1 xml:id="language.oop5.anonymous" xmlns="http://docbook.org/ns/docbook">
+ <title>Anonim Sınıflar</title>
+
+ <para>
+ Anonim sınıflar için destek PHP7'de eklendi. Anonim sınıflar basit, tek
+ seferlik nesnelerin oluşturulması gerektiğinde kullanışlıdır.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// PHP 7 öncesi kod
+class Logger
+{
+ public function log($msg)
+ {
+ echo $msg;
+ }
+}
+
+$util->setLogger(new Logger());
+
+// PHP 7 sonrası kod
+$util->setLogger(new class {
+ public function log($msg)
+ {
+ echo $msg;
+ }
+});
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Değiştirgelerini kurucularına iletebilir, diğer sınıfları genişletebilir,
+ arayüzleri gerçekleyebilir ve normal bir sınıf gibi nitelikleri
+ kullanabilirler:
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+class SomeClass {}
+interface SomeInterface {}
+trait SomeTrait {}
+
+var_dump(new class(10) extends SomeClass implements SomeInterface {
+ private $num;
+
+ public function __construct($num)
+ {
+ $this->num = $num;
+ }
+
+ use SomeTrait;
+});
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+object(class@anonymous)#1 (1) {
+ ["Command line code0x104c5b612":"class@anonymous":private]=>
+ int(10)
+}
+]]>
+ </screen>
+ </informalexample>
+
+ <para>
+ Anonim bir sınıfı başka bir sınıfta yerleştirmek, herhangi bir özel veya
+ korunan yönteme veya bu dış sınıfın özelliklerine erişim sağlamaz. Dış
+ sınıfın korumalı özelliklerini veya yöntemlerini kullanabilmek için, anonim
+ sınıf dış sınıfı genişletebilir. Dış sınıfın anonim sınıftaki özel
+ özelliklerini kullanmak için kurucusundan geçirilmesi gerekir:
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+class Outer
+{
+ private $prop = 1;
+ protected $prop2 = 2;
+
+ protected function func1()
+ {
+ return 3;
+ }
+
+ public function func2()
+ {
+ return new class($this->prop) extends Outer {
+ private $prop3;
+
+ public function __construct($prop)
+ {
+ $this->prop3 = $prop;
+ }
+
+ public function func3()
+ {
+ return $this->prop2 + $this->prop3 + $this->func1();
+ }
+ };
+ }
+}
+
+echo (new Outer)->func2()->func3();
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+6
+]]>
+ </screen>
+ </informalexample>
+
+ <para>
+ Aynı anonim sınıf bildirimiyle oluşturulan tüm nesneler, bu sınıfın
+ örnekleridir.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function anonymous_class()
+{
+ return new class {};
+}
+
+if (get_class(anonymous_class()) === get_class(anonymous_class())) {
+ echo 'aynı sınıf';
+} else {
+ echo 'farklı sınıf';
+}]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+aynı sınıf
+]]>
+ </screen>
+ </informalexample>
+
+ <note>
+ <para>
+ Aşağıdaki örnekte gösterildiği gibi, anonim sınıflara motor tarafından
+ bir ad verildiğini unutmayın. Bu isim, güvenilmemesi gereken bir
+ gerçekleme ayrıntısı olarak görülmelidir.
+ </para>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+echo get_class(new class {});
+]]>
+ </programlisting>
+ &example.outputs.similar;
+ <screen>
+<![CDATA[
+class@anonymous/in/oNi1A0x7f8636ad2021
+]]>
+ </screen>
+ </informalexample>
+ </note>
+</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
+-->
Property changes on: phpdoc/tr/trunk/language/oop5/anonymous.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property
Added: phpdoc/tr/trunk/language/oop5/changelog.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/changelog.xml (rev 0)
+++ phpdoc/tr/trunk/language/oop5/changelog.xml 2018-10-06 17:00:07 UTC (rev 345789)
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 332129 Maintainer: nilgun Status: ready -->
+<sect1 xml:id="language.oop5.changelog" xmlns="http://docbook.org/ns/docbook">
+ <title>NYP Değişiklik Tarihçesi</title>
+ <para>
+ PHP 5 NYP modelinde yaplan değişiklikler burada sıralanmıştır. Bunlarla
+ ilgili açıklamalar ve diğer bilgiler NYP belgeleri içindedir.
+ </para>
+ <para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>&Version;</entry>
+ <entry>&Description;</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>7.0.0</entry>
+ <entry>
+ Kullanılan iki niteliğin (uyumlu) özelliklerini tanımlamak artık bir
+ hatayı tetiklemiyor.
+ </entry>
+ </row>
+ <row>
+ <entry>5.6.0</entry>
+ <entry>
+ Eklendi: <link linkend="object.debuginfo">__debugInfo()</link> yöntemi.
+ </entry>
+ </row>
+ <row>
+ <entry>5.5.0</entry>
+ <entry>
+ Eklendi: <link linkend="language.oop5.basic.class.class">::class</link>
+ sihirli sabiti.
+ </entry>
+ </row>
+ <row>
+ <entry>5.5.0</entry>
+ <entry>
+ Eklendi: İstisnaları işlemek için
+ <link linkend="language.exceptions">finally</link> bloğu.
+ </entry>
+ </row>
+ <row>
+ <entry>5.4.0</entry>
+ <entry>
+ Eklendi: <link linkend="language.oop5.traits">Nitelikler</link>.
+ </entry>
+ </row>
+ <row>
+ <entry>5.4.0</entry>
+ <entry>
+ Değişti: Eğer bir <link linkend="language.oop5.abstract">abstract</link>
+ sınıfı kurucu için bir imza tanımlıyorsa, o imza artık yürürlüğe konuyor.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.3</entry>
+ <entry>
+ Değişti: Bir <link linkend="language.namespaces">isim alanlı</link>
+ sınıf adının son elemanı ile aynı isimdeki yöntemler artık
+ <link linkend="language.oop5.decon">kurucu</link> olarak ele alınmıyor.
+ Bu değişiklik isim alanlı olmayan sınıfları etkilemez.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Değişti: Prototipte öntanımlı değerlere sahip olan arayüzleri
+ yöntemlerle gerçekleyen sınıfların artık arayüzün öntanımlı değeriyle
+ eşleşmesi gerekmiyor.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Değişti: Sınıflara bir değişken kullanarak başvurmak artık mümkün (örn.,
+ <literal>echo $classname::constant;</literal>). Değişkenin değeri bir
+ anahtar sözcük olmamalıdır (örn., <literal>self</literal>,
+ <literal>parent</literal> veya <literal>static</literal>).
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Değişti: Sihirli <link linkend="language.oop5.overloading">aşırı
+ yükleme</link> yöntemleri <link linkend="language.oop5.static">static</link>
+ bildirilirse <constant>E_WARNING</constant> seviyesinde bir hata oluşur.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Değişti: 5.3.0 öncesinde, <function>__autoload</function> işlevinde
+ yavrulanan istisnalar <link linkend="language.exceptions">catch</link>
+ bloğunda yakalanamaz ve ölümcül hata oluşur. <literal>__autoload</literal>
+ işlevinde yavrulanmayan istisnalar
+ <link linkend="language.exceptions">catch</link> bloğunda tek bir
+ önlemle yakalanabilir. Özel bir istisna yavrulanıyorsa bu özel istisna
+ sınıfı mevcut olmalıdır. <literal>__autoload</literal> işlevi özel
+ istisna sınıfını özdevinimli yüklemek için ardışık olarak kullanılabilir.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Eklendi: <link linkend="language.oop5.overloading">__callStatic</link>
+ yöntemi.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Eklendi: Sınıf <emphasis>const</emphasis> ve özellik tanımları için
+ <link linkend="language.types.string.syntax.heredoc">yorumlu</link>
+ ve <link linkend="language.types.string.syntax.heredoc">yorumsuz</link>
+ metin desteği. Yorumlu değerlerin çift tırnaklı dizgelerin uyduğu kurallara
+ uyması gerektiğini unutmayın (örn, değşken olmayanların içinde).
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Eklendi: <link linkend="language.oop5.late-static-bindings">Duruk
+ İçselleştirim</link>.
+ </entry>
+ </row>
+ <row>
+ <entry>5.3.0</entry>
+ <entry>
+ Eklendi: <link linkend="object.invoke">__invoke()</link> yöntemi.
+ </entry>
+ </row>
+ <row>
+ <entry>5.2.0</entry>
+ <entry>
+ Değişti: <link linkend="object.tostring">__toString()</link> yöntemi
+ sadece <function>echo</function> veya <function>print</function> ile
+ doğrudan birleştirilip çağrılabilirdi. Artık, herhangi bir dizge
+ bağlamında (örn, <literal>%s</literal> seçenekli
+ <function>printf</function> içinde) çağrılabilir fakat diğer türlerin
+ bağlamlarında (örn, <literal>%d</literal> seçeneği ile) çağrılamaz.
+ PHP 5.2.0 itibariyle, nesnelerin <literal>__toString</literal> yöntemi
+ olmaksızın dizgeye dönüştürülmesi <constant>E_RECOVERABLE_ERROR</constant>
+ seviyesinde bir hataya sebep olur.
+ </entry>
+ </row>
+ <row>
+ <entry>5.1.3</entry>
+ <entry>
+ Değişti: PHP 5 öcesinde, <literal>var</literal> kullanımı önerilmezdi
+ ve <constant>E_STRICT</constant> seviyesinde bir hataya sebep olurdu.
+ Artık, önerilmeme durumu ortadan kalktığından bir hataya sebep olmuyor.
+ </entry>
+ </row>
+ <row>
+ <entry>5.1.0</entry>
+ <entry>
+ Değişti: <link linkend="object.set-state">__set_state()</link> duruk
+ yöntemi artık <function>var_export</function> ile ihracedilen sınıflar
+ için çağrılabiliyor.
+ </entry>
+ </row>
+ <row>
+ <entry>5.1.0</entry>
+ <entry>
+ Eklendi: <link linkend="object.isset">__isset()</link>
+ ve <link linkend="object.unset">__unset()</link> yöntemi.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+</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
+-->
Property changes on: phpdoc/tr/trunk/language/oop5/changelog.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property
Added: phpdoc/tr/trunk/language/oop5/serialization.xml
===================================================================
--- phpdoc/tr/trunk/language/oop5/serialization.xml (rev 0)
+++ phpdoc/tr/trunk/language/oop5/serialization.xml 2018-10-06 17:00:07 UTC (rev 345789)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 330347 Maintainer: nilgun Status: ready -->
+ <sect1 xml:id="language.oop5.serialization" xmlns="http://docbook.org/ns/docbook">
+ <title>Nesne Dizgeleştirme</title>
+ <title>Oturumlardaki nesnelerin dizgeleştirilmesi</title>
+
+ <para>
+ <function>serialize</function> işlevi PHP'de saklanmış bir değerin
+ bayt-akımı gösterimini içeren bir dizge döndürür. Özgün değişken değerlerini
+ yeniden oluşturmak için <function>unserialize</function> işlevi
+ kullanılabilir. Bir nesneyi saklamak için dizgeleştirme kullanımı nesnenin
+ içindeki tüm değişkenleri saklar. Nesnenin yöntemleri saklanmaz sadece
+ sınıf ismi saklanır.
+ </para>
+
+ <para>
+ Bir nesne için <function>unserialize</function> kullanabilmek için sınıf
+ nesnesinin tanımlı olması gerekir. Yani, A sınıfının bir nesnesi varsa ve
+ siz onu dizgeleştiriseniz, A sınıfının ismini ve içerdiği tüm değişkenlerin
+ değerlerini içeren bir dizge alırsınız. Başka bir dosyada bu dizgeyi
+ <function>unserialize</function> ile dönüştürmek isterseniz, bu dosyada
+ daha önce A sınıfını tanımlamış ve nesnesini oluşturmuş olmalısınız.
+ Bu, örneğin, A sınıfının tanımını bir include dosyasında saklayıp bu
+ dosyayı betiğinize dahil ederek veya
+ <function>spl_autoload_register</function> işlevini kullanarak
+ yapabilirsiniz.
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// classa.inc:
+
+ class A {
+ public $one = 1;
+
+ public function show_one() {
+ echo $this->one;
+ }
+ }
+
+// page1.php:
+
+ include("classa.inc");
+
+ $a = new A;
+ $s = serialize($a);
+ // $s'i page2.php'nin bulabileceği bir yere sakla
+ file_put_contents('store', $s);
+
+// page2.php:
+
+ // unserialize işlevinin düzgün çalışması için gerekli
+ include("classa.inc");
+
+ $s = file_get_contents('store');
+ $a = unserialize($s);
+
+ // şimdi show_one() işlevini kullanabiliriz.
+ $a->show_one();
+?>
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Bir uygulama oturumları kullanıyorsa ve nesneleri kaydetmek için
+ <function>session_register</function> işlevini kullanırsa, bu nesneler her
+ PHP sayfasının sonunda otomatik olarak dizgeleştirilir ve sonraki
+ sayfaların her birinde özdevinimli olarak nesneleştirilir. Yani, bu
+ nesneler, oturumun bir parçası haline geldiklerinde, uygulama sayfalarının
+ herhangi birinde görünebilir. Bununla birlikte,
+ <function>session_register</function> işlevi PHP 5.4.0'da kaldırıldı.
+ </para>
+
+ <para>
+ Bir uygulama, uygulamada daha sonra kullanmak için nesneleri
+ dizgeleştiriyorsa, uygulamanın o nesnenin sınıf tanımını uygulama boyunca
+ içermesi şiddetle tavsiye edilir. Bunu yapmamak, bir nesnenin sınıf
+ tanımlaması olmaksızın nesneleştirilmesiyle sonuçlanabilir, bu da PHP'nin
+ nesneyi hiçbir yöntemi olmayan bir
+ <classname>__PHP_Incomplete_Class_Name</classname> sınıfına sokmasına
+ neden olur ve sonuçta nesne işe yaramaz hale gelir.
+ </para>
+
+ <para>
+ Yani, yukarıdaki örnekte, eğer <literal>session_register("a")</literal>
+ çalıştırarak <varname>$a</varname> bir oturumun parçası haline gelirse,
+ <literal>classa.inc</literal> dosyasını yalnız <filename>page1.php</filename>
+ ve <filename>page2.php</filename> dosyalarına değil tüm sayfa dosyalarına
+ dahil etmelisiniz.
+ </para>
+
+ <para>
+ Yukarıdaki tavsiyenin ötesinde, <link linkend="object.sleep">__sleep()</link>
+ ve <link linkend="object.wakeup">__wakeup()</link> yöntemlerini kullanarak
+ da bir nesne üzerinde dizgeleştirme ve yeniden nesneleştirme yapabileceğinizi
+ unutmayın. <link linkend="object.sleep">__sleep()</link> kullanımı ayrıca,
+ nesne özelliklerinin tamamının değil sadece bir kısmının dizgeleştirilmesini
+ de sağlar.
+ </para>
+ </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
+-->
Property changes on: phpdoc/tr/trunk/language/oop5/serialization.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property