OOP

PHP OOP Oto Sınıf Yükleme (Autoloading Class) Metodu

Selamün Aleyküm Arkadaşlar;

Bir sınıfı türettirmeden önce __autoload($sinif_isim) fonksiyonu tetiklenir. Bu yöntem her defasında sınıfın olduğu sayfayı entegre etmememizi sağlar. Yani otomatik olarak dahil edilir.

class klasöründe cls.ogr.php dosyasında ogr isminde sınıfımız olsun.

Bu şekilde ogr sınıfını türettirdiğimiz zaman hata meydana gelir. Çünkü sınıfımız class/cls.ogr.php içinde olduğu için. Onu sayfaya dahil etmemiz gerekir. Bu işlemleri include, include_once, require, require_once komutlarıyla sayfayı dahil ederiz. Ama biz burada __autoload metodunu kullanacağız.

ogr sınıfı türetilmeden önce __autoload metodu çalışır. require_once ‘class/cls.ogr.php’ dosyasını dahil eder. Sonra ogr sınıfı türetilir.

Sınıf türetilirken hata meydana gelebilir. Hatayı yakalamak için try catch bloklarını kullanabiliriz. Bu özellik PHP 5.3.0 dan beri vardır. Önceki sürümlerde çalışmaz.

ogr1 sınıfı olmadığı için catch bloğu çalıştırılacaktır.

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

PHP OOP Sihirli Yöntemler (Magic Methods)

Selamün Aleyküm Arkadaşlar;

PHP’nin sınıflara ait bazı özel metodları vardır.

__call()
Tanımlanmayan bir metod çağırıldığı zaman tetiklenir. İki parametre alır. Çağırılan metod ismi ve metoda gönderilen parametre-ler.

 

__callStatic()
PHP 5.3.0 sürümünde eklenmiştir. Tanımlı olmayan bir static metodu çağırdığımızda tetiklenir. Parametre olarak çağırılan metod ismi ve parametre-leri alır.

 

__get($degiskenisim)
Bir değişkeni çağırdığınızda o değişken sınıfta yoksa __get($degiskenisim) metodu tetiklenir. Parametre olarak değişken ismini verir.

ad1 değişkeni ogr sınıfında tanımlı olmadığı için __get metodu tetiklenir.

 

__set($degiskenisim, $degiskendeger)
Tanımlı olmayan bir değişkene değer atanmaya çalışıldığında tetiklenir. Parametre olarak iki tane parametre alır. Değişken ismi ve değişken değer.

ad1 degişkeni tanımlı olmadığı ve değer atamaya çalıştığımız zaman __set metodu tetiklenir.

 

__invoke()
Bu özellik PHP 5.3.0’dan beri eklenmiştir. Sınıfa bir parametre gönderdiğimiz zaman tetiklenir. Kullanımı şu şekildedir.

 

__tostring()
Sınıf ekrana çıktılandığında çalışır. Yani türettiğimiz bir sınıfa echo, print uygularsak __tostring() metodu tetiklenir. Geriye yazılacak bir nesne göndermelidir.

echo $ogr komutuyla __tostring() metodu tetiklendi ve return’le dönen kayıt çıktı olarak yazıldı.

 

__clone()
Bir değişkende bulunan sınıfı başka bir değişkene klonladığımızda __clone() metodu tetiklenir.

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

PHP OOP Giriş

Selamün Aleyküm Arkadaşlar;

PHP OOP’nin (Object Oriented Programming – Nesne Yönelimli Programlama) temeli sınıflardan (class) oluşur.

PHP’de sınıf (class) tanımlaması şu şekilde yapılır:

Oluşturduğumuz sınıfı kullanabilmemiz için onun görüntüsünü (instance) oluşturmamız gerekir. Görüntüsünü oluşturmak için new kodunu kullanırız.

$değisken adındaki bir değişkene (variable) sınıfımızın görüntüsü atadık.

Sınıfımızda değişken tanımlamak istersek eğer bir erişim sağlayıcısıyla (public, private, protected) beraber yazmamız gerekir. Yoksa PHP’de hata meydana gelir.

Fonksiyon (Function)

PHP’de fonksiyonlar (function) iki türlüdür. Geriye değer döndüren veya döndürmeyen.

Eğer geriye değer döndüreceksek return komutunu kullanırız.

Fonksiyonun alt program olarak kullanımı:

Bir fonksiyona dışarıdan parametre yollarak kullanılması:

Bir fonksiyondan sınıfımıza ait bir değişkene veya metoda erişmemiz için $this kodunu kullanırız.

 

Yapıcı (__construct) Metod

Sınıf türetildiği zaman ilk tetiklenecek metoddur. Geriye değer döndüremez.

Yıkıcı (__destruct) Metod

Sınıf türetildikten sonra, en son tetiklenir. Sınıf kapatılırken yok edildiği anda çalışan metoddur. Sınıfta Exit() metoduyla sonlarılsa dahi bu metod çalışır.

static Anahtar Sözcüğü

static olarak tanımlanmış, sınıf özelliklerine veya yöntemlerine türettirmeden ulaşabiliriz. Normal olarak türetilmiş bir sınıftan static olan nesneye erişilemez. isim::$staticnesneisim olarak erişilebilir. Sınıfta oluşturulmuş bir static nesneye sınıftan self::$staticnesneisim olarak erişilir.

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.