<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>PHP 5&#8242;de metot zincirleme yazısına yapılan yorumlar</title>
	<atom:link href="http://www.eburhan.com/php-5de-metot-zincirleme/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eburhan.com/php-5de-metot-zincirleme/</link>
	<description>Kişisel Bir Web Günlüğü</description>
	<lastBuildDate>Wed, 14 Sep 2011 08:10:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Yazar: formDogrula (fdo) sınıfının 1.5 sürümüne dair yenilikler...</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-24427</link>
		<dc:creator>formDogrula (fdo) sınıfının 1.5 sürümüne dair yenilikler...</dc:creator>
		<pubDate>Fri, 16 Jul 2010 07:45:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-24427</guid>
		<description>[...] kuralları eklediğimizi ise ilk önce form_alani() metodu ile belirteceğiz. Metotlar arasında Metot Zincirleme [...]</description>
		<content:encoded><![CDATA[<p>[...] kuralları eklediğimizi ise ilk önce form_alani() metodu ile belirteceğiz. Metotlar arasında Metot Zincirleme [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: Anonim</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-23328</link>
		<dc:creator>Anonim</dc:creator>
		<pubDate>Wed, 24 Mar 2010 12:32:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-23328</guid>
		<description>[...]  [...]</description>
		<content:encoded><![CDATA[<p>[...]  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: can</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-22406</link>
		<dc:creator>can</dc:creator>
		<pubDate>Mon, 18 Jan 2010 08:52:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-22406</guid>
		<description>&lt;code&gt;
class dogumTarihi{
 
    public $tarih;
    public static $_tarih;
 

    public function __call($key,$value)
    {
        foreach($value as $a=&gt; $val)
        {
           $this-&gt;tarih[$key] = $val;
        }
        return $this;
    }
    
    public function yazdir()
    {
       
        foreach((array)$this as $key=&gt; $val)
        {
          foreach($val as $a =&gt; $b)
          {
            echo $a.&#039;=&#039;.$b.&#039;&#039;;
          }
        }
    }
    
    public static function __callStatic($key,$value)
    {
        foreach($value as $a=&gt; $val)
        {
          self::$_tarih[$key] = $val;
        }
        return self::$_tarih;
    }
    
    public static function yazdirs()
    {
         foreach((array)self::$_tarih as $key=&gt; $val)
        {
            echo $key .&#039;=&#039;.$val.&#039;&#039;;
        }
    }
    

    
}


$dogumTarih = new dogumTarihi;
$dogumTarih-&gt;gun(6)
            -&gt;ay(11)
            -&gt;yil(1984);
$dogumTarih-&gt;yazdir();


dogumTarihi::gun(6);
dogumTarihi::ay(11);
dogumTarihi::yil(1984);
dogumTarihi::yazdirs();
&lt;/code&gt;

bu örneğimde php 5.0 ve php 5.3 de basit bir call sihirbaz çağırımı yöntemiyle zindirlemeye örnek.</description>
		<content:encoded><![CDATA[<p><code><br />
class dogumTarihi{</p>
<p>    public $tarih;<br />
    public static $_tarih;</p>
<p>    public function __call($key,$value)<br />
    {<br />
        foreach($value as $a=&gt; $val)<br />
        {<br />
           $this-&gt;tarih[$key] = $val;<br />
        }<br />
        return $this;<br />
    }</p>
<p>    public function yazdir()<br />
    {</p>
<p>        foreach((array)$this as $key=&gt; $val)<br />
        {<br />
          foreach($val as $a =&gt; $b)<br />
          {<br />
            echo $a.'='.$b.'';<br />
          }<br />
        }<br />
    }</p>
<p>    public static function __callStatic($key,$value)<br />
    {<br />
        foreach($value as $a=&gt; $val)<br />
        {<br />
          self::$_tarih[$key] = $val;<br />
        }<br />
        return self::$_tarih;<br />
    }</p>
<p>    public static function yazdirs()<br />
    {<br />
         foreach((array)self::$_tarih as $key=&gt; $val)<br />
        {<br />
            echo $key .'='.$val.'';<br />
        }<br />
    }</p>
<p>}</p>
<p>$dogumTarih = new dogumTarihi;<br />
$dogumTarih-&gt;gun(6)<br />
            -&gt;ay(11)<br />
            -&gt;yil(1984);<br />
$dogumTarih-&gt;yazdir();</p>
<p>dogumTarihi::gun(6);<br />
dogumTarihi::ay(11);<br />
dogumTarihi::yil(1984);<br />
dogumTarihi::yazdirs();<br />
</code></p>
<p>bu örneğimde php 5.0 ve php 5.3 de basit bir call sihirbaz çağırımı yöntemiyle zindirlemeye örnek.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: Aydın</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-20968</link>
		<dc:creator>Aydın</dc:creator>
		<pubDate>Thu, 17 Sep 2009 08:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-20968</guid>
		<description>Güzel makale eline sağlık..</description>
		<content:encoded><![CDATA[<p>Güzel makale eline sağlık..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: Erhan</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19679</link>
		<dc:creator>Erhan</dc:creator>
		<pubDate>Wed, 01 Jul 2009 09:52:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19679</guid>
		<description>@Gökçe YALÇIN
Bilgilendirici yorumun için teşekkürler &lt;em&gt;(senin gibi yorum yazanlara ihtiyaç var blogkürede)&lt;/em&gt;.</description>
		<content:encoded><![CDATA[<p>@Gökçe YALÇIN<br />
Bilgilendirici yorumun için teşekkürler <em>(senin gibi yorum yazanlara ihtiyaç var blogkürede)</em>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: Gökçe YALÇIN</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19673</link>
		<dc:creator>Gökçe YALÇIN</dc:creator>
		<pubDate>Tue, 30 Jun 2009 23:10:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19673</guid>
		<description>@Erhan: Siteni uzun süredir takip etmeme rağmen, yazdığım ilk yorum olacak, o yüzden öncelikle içerik için teşekkürler, ve tebrikler.

Konu ile ilgili yoruma gelince, method chaining, kimi kodlama uygulamalarına (coding practice* demek istedim, iyisimi terimleri olduğu gibi bırakayım) haksız sayılmayacak şekilde sınırlı bir kullanımı olduğunu söylemekte -fakat tabii ki hayatı kolaylaştırmadığını söylemiyorum-, bunun nedeni  bitirme problemi. Erhan&#039;ın yazılarını takip edenlerin, jQuery&#039;ye oldukça aşina olduklarını sanıyorum, bu problemin bir örneğini jQuery resmi manual&#039;inde görebiliyoruz:

$(&#039;#faq&#039;).find(&#039;dd&#039;).hide().end().find(&#039;dt&#039;).click(function() {
        $(this).next().slideToggle();
    });
}

Bu kullanımda, end(); kod okunurluğu açısından baktığımızda bir öncesinde ve bir sonrasında kullanılan find() &#039;ın ortasında oldukça gizemli bir iş yapıyora benziyor, ve chaining pratikte bozuluyor. Bunun nedeni objeye mudahale ederken uğraştığımız &#039;context variable&#039; &#039;lar. 

Başlangıçtaki objenin işleyişini değiştirmiş veya bir methodun temel bir değişkene mudahale etmesiyle pratikte başka bir objeyi döndürmeye zorunlu olmasından dolayı bize context i değişmemiş objeyi tekrar döndürecek bir methoda ihtiyaç duyuyoruz. Burada end(), en azından hiç değişmemiş olan objenin kopyasını döndürerek bir sonraki chain için sorguyu hazır hale getiriyor. Method Chaining yöntemini kullanmak istiyorsanız, bu end() benzeri (end() neredeyse her method chaining uygulamasında standart olarak kabul edilmiştir) methodunu da baştan tanımlamanız, bazı işleri &#039;design pattern&#039; &#039;in dışına çıkmadan tanımlamamızı sağlayacaktır. 

End methodunu kurgulamak içinse, ya class&#039;ın construct overload methodunun, ya da contexti değiştiren methodun gerekli yedekleri almasını sağlamak ve end() methoduyla yedekteyi veriyi geri döndürmesini sağlamak yeterli.

Yine de, kod okunurluğu açısından, böyle bir uygulama gerektirmeyecek, bütün işlemlerin objeye doğrudan etkisi olmadan, bütün fonksiyon çağrılarının sadece objenin parametrelerinin etrafında dönen işlemlerde method chaining&#039;in tercih edilmesi daha yaygın bir kullanım. End() gerektirmeyecek PHP&#039;de yaygın bir kullanım örneğini bir &#039;query builder&#039; yaratarak elde edebiliriz:

$res = $db-&gt;select(&#039;id&#039;)-&gt;from(&#039;hede&#039;)-&gt;where(&#039;x=y&#039;)-&gt;get();

gibi.</description>
		<content:encoded><![CDATA[<p>@Erhan: Siteni uzun süredir takip etmeme rağmen, yazdığım ilk yorum olacak, o yüzden öncelikle içerik için teşekkürler, ve tebrikler.</p>
<p>Konu ile ilgili yoruma gelince, method chaining, kimi kodlama uygulamalarına (coding practice* demek istedim, iyisimi terimleri olduğu gibi bırakayım) haksız sayılmayacak şekilde sınırlı bir kullanımı olduğunu söylemekte -fakat tabii ki hayatı kolaylaştırmadığını söylemiyorum-, bunun nedeni  bitirme problemi. Erhan&#8217;ın yazılarını takip edenlerin, jQuery&#8217;ye oldukça aşina olduklarını sanıyorum, bu problemin bir örneğini jQuery resmi manual&#8217;inde görebiliyoruz:</p>
<p>$(&#8216;#faq&#8217;).find(&#8216;dd&#8217;).hide().end().find(&#8216;dt&#8217;).click(function() {<br />
        $(this).next().slideToggle();<br />
    });<br />
}</p>
<p>Bu kullanımda, end(); kod okunurluğu açısından baktığımızda bir öncesinde ve bir sonrasında kullanılan find() &#8216;ın ortasında oldukça gizemli bir iş yapıyora benziyor, ve chaining pratikte bozuluyor. Bunun nedeni objeye mudahale ederken uğraştığımız &#8216;context variable&#8217; &#8216;lar. </p>
<p>Başlangıçtaki objenin işleyişini değiştirmiş veya bir methodun temel bir değişkene mudahale etmesiyle pratikte başka bir objeyi döndürmeye zorunlu olmasından dolayı bize context i değişmemiş objeyi tekrar döndürecek bir methoda ihtiyaç duyuyoruz. Burada end(), en azından hiç değişmemiş olan objenin kopyasını döndürerek bir sonraki chain için sorguyu hazır hale getiriyor. Method Chaining yöntemini kullanmak istiyorsanız, bu end() benzeri (end() neredeyse her method chaining uygulamasında standart olarak kabul edilmiştir) methodunu da baştan tanımlamanız, bazı işleri &#8216;design pattern&#8217; &#8216;in dışına çıkmadan tanımlamamızı sağlayacaktır. </p>
<p>End methodunu kurgulamak içinse, ya class&#8217;ın construct overload methodunun, ya da contexti değiştiren methodun gerekli yedekleri almasını sağlamak ve end() methoduyla yedekteyi veriyi geri döndürmesini sağlamak yeterli.</p>
<p>Yine de, kod okunurluğu açısından, böyle bir uygulama gerektirmeyecek, bütün işlemlerin objeye doğrudan etkisi olmadan, bütün fonksiyon çağrılarının sadece objenin parametrelerinin etrafında dönen işlemlerde method chaining&#8217;in tercih edilmesi daha yaygın bir kullanım. End() gerektirmeyecek PHP&#8217;de yaygın bir kullanım örneğini bir &#8216;query builder&#8217; yaratarak elde edebiliriz:</p>
<p>$res = $db-&gt;select(&#8216;id&#8217;)-&gt;from(&#8216;hede&#8217;)-&gt;where(&#8216;x=y&#8217;)-&gt;get();</p>
<p>gibi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: Erhan</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19624</link>
		<dc:creator>Erhan</dc:creator>
		<pubDate>Thu, 25 Jun 2009 15:20:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19624</guid>
		<description>@şaban
javam.org yakında kendi sunucusuna taşınacak. Biraz beklemeniz gerekiyor.</description>
		<content:encoded><![CDATA[<p>@şaban<br />
javam.org yakında kendi sunucusuna taşınacak. Biraz beklemeniz gerekiyor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: ÖTÜKEN</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19622</link>
		<dc:creator>ÖTÜKEN</dc:creator>
		<pubDate>Thu, 25 Jun 2009 12:19:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19622</guid>
		<description>Böyle kullanılabildiğini bilmiyordum teşekkürler.</description>
		<content:encoded><![CDATA[<p>Böyle kullanılabildiğini bilmiyordum teşekkürler.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: şaban Ulutaş</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19621</link>
		<dc:creator>şaban Ulutaş</dc:creator>
		<pubDate>Thu, 25 Jun 2009 06:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19621</guid>
		<description>makale güzel. bugün yeni bi şey öğrendik sayende eburhan ;) yeri değil ama bi şey soracam; javam.org a girdiğim zaman sedo nun parking sayfası çıkıyor karşıma. bu konuda bir bilginiz varmı?</description>
		<content:encoded><![CDATA[<p>makale güzel. bugün yeni bi şey öğrendik sayende eburhan <img src='http://www.eburhan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  yeri değil ama bi şey soracam; javam.org a girdiğim zaman sedo nun parking sayfası çıkıyor karşıma. bu konuda bir bilginiz varmı?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Yazar: enver</title>
		<link>http://www.eburhan.com/php-5de-metot-zincirleme/#comment-19580</link>
		<dc:creator>enver</dc:creator>
		<pubDate>Fri, 19 Jun 2009 16:13:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.eburhan.com/?p=133#comment-19580</guid>
		<description>ara açılıyor bazen ama dönüş güzel oluyor :)) teşekkürler.</description>
		<content:encoded><![CDATA[<p>ara açılıyor bazen ama dönüş güzel oluyor <img src='http://www.eburhan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) teşekkürler.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

