Php Dersleri
2026 Güncel

Php OOP Eğitimleri – Zincirleme Methodlar (Chain Methods)

4 dk okuma süresi 532 görüntülenme 28.09.2023 4.9 (18 değerlendirme)

Merhabalar arkadaşlar, Phphocasi.com.tr için hazırladığımız php eğitimlerinde bu ders Zincirleme Methodları göreceğiz. Nedir bu zincirleme methodlar diyecek olursak kısaca bir sınıftan oluşturulan nesnenin methodlarını tek satırda artarda çağırmak diyebiliriz.

Zincirleme Methodlar

Zincirleme (chain) methodlar bir zincir gibi artarda çağırılabilen methodlardır dedik. Örneğin: $insan->m1()->m2()->m3()….. şeklinde çağırılabilen methodlardır.

Bir methodun zincirleme method olması için geriye her zaman sınıfı döndürmesi gerekir.

public function fo() { ... İşlemler return $this }

 

Peki ne işimize yarar bu chain methodlar?

  • Kod kalabalığını azaltır.
  • kod okunabilirliğini artırır.
  • Performansı artırır.

Şimdi normal bir şekilde bir insan sınıfı oluşturalım daha sonra bu sınıfı zincirleme methodlar ile çalışabilecek şekilde düzenleyelim.

Düz mantıkta yazılmış sınıf:

class kisi { private $adSoyad private $tc public function __construct() { } public function setAdSoyad($adSoyad){ $this->adSoyad = $adSoyad } public function setTc($tc){ $this->tc = $tc } // bilgileri dışardan yazdırabilelim. public function bilgiYazdir() { echo "Ad Soyad: $this->adSoyad | Tc: $this->tc" } } $kisi = new Kisi() $kisi->setAdSoyad("Vehbi Akdoğan") $kisi->setTc("1111") $kisi->bilgiYazdir()

Yukarıdaki örnekte setAdSoyad() ve setTc() methodlarını iki ayrı satırda başınca $kisi-> nesnesi olacak şekilde kullandık.

$kisi->setAdSoyad()->setTc() şeklinde çalıştırmayı denersek bu method geriye bir değer döndürmüyor tarzında bir hata alırız.

Zincirleme method kurallarına uygun şekilde sınıfımızı düzenleyelim.

 

<?php /* Bu PHP Dosyasi Vehbi Akdogan Tarafindan Kodlanmistir. E-Posta: [email protected] Web: vehbiakdogan.com */ class kisi { private $adSoyad private $tc public function __construct() { } public function setAdSoyad($adSoyad){ $this->adSoyad = $adSoyad return $this } public function setTc($tc){ $this->tc = $tc return $this } // bilgileri dışardan yazdırabilelim. public function bilgiYazdir() { echo "Ad Soyad: $this->adSoyad | Tc: $this->tc <br/>" return $this } } $kisi = new Kisi() $kisi->setAdSoyad("Vehbi Akdoğan")->setTc("1111")->bilgiYazdir() 

Üsteki örnekte 4 satırda işlem yaparken şimdi 2 satıra düşürmüş olduk. Hatta aşağıdaki şekilde yazıp tek satıra da düşürebiliriz.

(new Kisi())->setAdSoyad("Taha Kırca")->setTc("2222")->bilgiYazdir()

Konunun daha iyi anlaşılması için bir örnek daha yapalım.

Hesap Makinesi Örneği

Zincirleme methodlar kullanarak basit dört işlemi gerçekleştirecek bir hesap makinesi tasarlayalım.

class HesapMakinesi { private $sonuc = 0 public function __construct() { } public function topla($a) { $this->sonuc +=$a return $this } public function cikar($a) { $this->sonuc -=$a return $this } public function carp($a) { $this->sonuc *=$a return $this } public function bol($a) { $this->sonuc /=$a return $this } public function sonucuGoster() { echo "Sonuç : ".$this->sonuc return $this } }

klasik bakkal hesapmakinesi tarzında 4 işlemi gerçekleştirebilen bir hesap bakinesi tasarladık.

Şimdi bu hesap makinesini  test etmek için (3*5+4-9)/2 = 5 işlemini hesap makinesinde test edelim.

$makine = new HesapMakinesi() $makine->topla(3) ->carp(5) ->topla(4) ->cikar(9) ->bol(2) ->sonucuGoster() // Çıktı // Sonuç : 5

şeklinde hesap makinemizi çalıştırmış olduk. Zincirleme methodlar veri tabanı sınıflarında daha güzel bir şekilde kullanılabiliyor. Şuan henüz veri tabanı işlemlerini görmediğimiz için örnek yapmayacağım. Umarım konu anlaşılmıştır ?

Chain methodlar sadece php dilinde  değil diğer nesne yönelimli programlama dillerinde de çok sık olarak kullanılmaktadır.

Bir dersimizin daha sonuna geldik. Bir sonraki dersimizde görüşmek üzere ?

 

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

 

1
Makaleyi Değerlendirin

Bu makale işinize yaradı mı? Puan verin!

Okuyucu puanları makalelerimizin arama motorlarında öne çıkmasına ve güncellenmesine destek olur.

4.9 / 5 (Toplam 18 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu makale ve teknik konuyla ilgili detaylar

Php OOP Eğitimleri &#8211; Zincirleme Methodlar (Chain Methods) makalesindeki yöntemler hangi sürümlerde geçerlidir?

İçerikteki çözümler ve kod örnekleri güncel PHP 8.x ve modern web standartları referans alınarak test edilmiştir.

Bu konuda başka makalelere nereden ulaşabilirim?

Sayfanın sağ tarafındaki Kategori Menüsü ve ilgili yazılar alanından benzer teknik rehberleri inceleyebilirsiniz.