PHP Sihirli (Magic) Metodlar

PHP Sihirli (Magic) Metodlar

Tarhi : 08-02-2020 02:46:01 | Yazar : ÇAĞLAR BOSTANCI

Php OOP (Nesne Tabanlı Programlama) de kullanılan sihirli metodlar bulunmaktadır. Bu metodlar php tarafından tanımlanmış, iş ve işlemleri yapmak için varsayılan olarak programlanmıştır. Kendi oluşturduğumuz metodlardan iki alt çizgi __metotAdi ile ayrılmaktadır. Bu nedenle oluşturacağınız metotların __ iki alt çizgi ile başlamamasına özen gösterin. Php sihirli metodlar her sınıf içerisinde gerekli olan işlemler için oluşturulmuştur. Gereksiz metot yok diyebiliriz. Şimdi aşağıdaki tablodu php sihirli metotları listeledik. Yine php sihirli metotların kullanımıyla ilgili örenker oluşturduk. Faydalı olması dileğiyle… Başarılar. kullanımı ile

__construct() Bir sınıfı çağırdığımız kendiliğinden çalışan kurucu bir metotdur. Bu metot ön yükleyicide diyebiliriz.
__destruct() Sınıf çağırıldıktan sonra çalışan yıkıcı metotur. Bu metot sınıfın işi bittikten sonra kendisi devreye girer.
__call() Bir sınıfı oluşturduğunuzda ve sınıf içerisinde bulunmayan bir metodu çağırdığınız kendiliğinden devreye giren metotdur.
__callStatic() Oluşturulan sinifta tanımlanmayan static metot çağırıldığında çalışcak metotdur.
_get() Tanımlanan sınıfta olmayan bir özellik çağırıldığında devreye giren metotdur.
__set() Tanımlanan sınıfta olmayan bir özelliğe değer verildiğinde devreye giren metotdur.
__isset() Tanımlanan sınıfta olmayan bir özelliğe isset() ve empty() fonksiyonlar kullanılma çalışıldığında devreye girer
__unset() Sınıfta tanımlanmayan bir özellik unset() fonksiyonu uygulandığında devreye giren metotdur.
__sleep() Tanımlanan sınıfa serialize() funksiyonu uygulandığında devreye giren metotdur.
__wakeup() Tanımlanan sınıfa unserialize() fonksiyonu uygulandığında devreye giren metotdur.
__toString() Tanımlanan sınıf print veya echo ile ekrana basılmaya çalışıldığında devreye giren metotdur.
__invoke() Tanımlanan sınıfın nesnesini metot gibi çağırıldığında devreye girer
__set_state() Tanımlanan sınıfa var_export() funksiyonu uygulandığında devreye girer.
__clone() Tanımlanan sınıf klonlanmaya çalışıldığında devreye giren metotdur.

__construct ve __destruct Kullanımı (Kurucu ve Yıkıcı Metodlar)

Bir sınıf çağrılacağından çağrılma esansında, sınıf oluşturulurken yapılması gereken işler varsa ve o işler her sınıf çağırıldığında yapılıyorsa bu gibi işlemler __construct kısmıda yazıyoruz. Aynı zamamda sınıf oluşturulurken parametre (veri) göndermemizide sağlıyor.

Veri tabanı bilgileri sınıf çağırlırken parametre olarak girildi ve sınıfın ön yükleyicisi __construct bunları sınıf içerisindeki değişkenlere atandı. __destrcut sihirli metodu ise sınıfın sonunuda yıkıcı, yok edici metod olarak çalıştırılır örneğin bir veri tabanı bağlantısı kuruldu sonra kapatma işini __destruct ile yapalım.

Sınıfı Dizi Yapmak

Sınıfa serialize fonksiyonu uygulandığında sınıf içerisindeki değişkenleri __sleep() php sihirli metodu ile geri göndeririz. Yine serialize edilmiş bir sınıfa unserialize uygulandığında devreye __wakeup() metodu girer.

PHP Overloading (Bindirme) __call() __get() __set() Kullanımı

Overloading metorları dinamik olarak oluşturmaktadır. Bu metotlar __call(), __get() ve __set() tir. Kullanım amaçları sinif içerisinde olmayan bir metoda değer verilirse __set() metodu devreye giriyor. Yine olmayan bir metot çağırıldığında ise __call() php sihirli metodu devreye girmektedir.

PHP __toString Sihirli Metodunun Kullanımı

Oluşturulan bir sınıf echo vey print fonksiyonları ile ekrana basılmak istendiğinde devreye giren php sihirli metodudur. Bu php sihirli metodu geriye değer dönderdiği için return ile geriye değer aktarılmalıdır.

Nesneleri Fonksiyonlaştırma

Oluşturulan bir sınıfı fonksiyon yapsında kullanamak istiyorsanı bu php sihirli metodunu kullanabilirsiniz. Bu metot çok amaçlı olarakta kullanılabilir.