PHP: Nesne Yönelimli Programlama Giriş

Nesne yönelimli programlama bir başka deyişle OOP( Object Oriented Programming) büyük çaplı projelerde kodlarınızı karmaşıklıktan kurtarmak için kullandığımız programlama yaklaşımıdır.

E-ticaret, portal gibi platformları OOP'siz yani yapısal programlamayla yazmaya kalkışırsanız ilk başlarda rahat gelir fakat özellik ekledikçe yazılım sizin kontrolünüzden çıkar. Takım çalışması için de berbat bir durumdur. 

OOP'yi kısaca bir problemi parçalara bölüp, bu parçaları da nesnelere dönüştürerek çözüme ulaştırmak diye açıklasam sanıyorum yanlış olmaz. Daha detaylı bilgi için wikipedia açıklamasını okumanızı tavsiye ederim.

Yazımın başında belirtmek istediğim bir konu daha var. Takım çalışması için OOP'de tek başına yeterli değildir. Günümüzün popüler tasarım mimarisi MVC'yi kullanmanızı şiddetle tavsiye ediyorum. Eğer yazılıma yeni başlıyorsanız ilk öğreneceğiniz yapısal programlama olmalıdır.  Ardından OOP en son olarak da MVC mimarisinde bir framework olmalıdır. Aksi takdirde bir şeyler hep eksik kalır.

Örnek vereyim yapısal programlamada for, foreach, while, do while gibi kodların aralarında ki farkları bilmeden yada OOP'de User::find(1); ifadesinin statik fonksiyon olduğunu bilmeden bir sonraki aşamaya geçerseniz programlamanız hiç bir zaman tam oturmaz.

Neyse bu kadar ön bilgiden sonra geçelim anlatıma. Anlatım sırasını tartışmasız en iyi php kaynağı php.net'e göre hazırladım.

 

Temel Bilgiler 


Class Tanımlama :

Kod
<?php
// Insan adında class(sınıf) tanımladık
class Insan
{
	// özellik bildirimi
	public $adsoyad = "John Doe";
	public $yas;

    // metot tanımı
	public function ekranaBas(){
		// ekrana belirttiğimiz ifadeleri basar.
		printf("%s adlı kişinin yaşı: %s <br/>\n",$this->adsoyad, $this->yas);
	}
}

 

Tanımladığımız class'dan nesne oluşturma ve metot çağırma: 

//  Insan sınıfından yeni bir nesne oluşturduk.
$x = new Insan;
// nesnemizin özelliklerinii değiştirdik.
$x->adsoyad = "Rıza Güneş";
$x->yas = 23;
// Nesnemizin ekranaBas() fonksiyonunu çağırdık.
$x->ekranaBas();

Yukarıdaki kodları çalıştırdığınızda tarayıcınızda "Rıza Güneş adlı kişinin yaşı: 23" yazısı gözükecektir.


Miras Alma:

Bir sınıfın bildiriminde extends anahtar sözcüğü kullanılarak başka bir sınıfın yöntemleri ve özellikleri miras alınabilir. Çok sayıda sınıfı miras alarak genişlemek mümkün değildir, bir sınıf sadece bir ana sınıfı miras alabilir.

Kod
<?php

// Insan adında class(sınıf) tanımladık
class Insan
{
    // özellik bildirimi
    public $adsoyad = "John Doe";
    public $yas;

    // metot tanımı
    public function ekranaBas(){
        // ekrana belirttiğimiz ifadeleri basar.
        printf("%s adlı kişinin yaşı: %s <br/>\n",$this->adsoyad, $this->yas);
    }
}

// Meslek adında class(sınıf) tanımladık ve Insan sınıfından miras edindik.
class Meslek extends Insan
{
    public $pozisyon = "İşsiz";
}

 

Meslek sınıfından nesne oluşturalım:

Kod
<?php
$y = new Meslek;
$y->adsoyad = "Akın Turgut";
$y->yas = 22;
$y->pozisyon = "Veritabanı Uzmanı";
echo $y->adsoyad . 'adlı kişi '. $y->yas .' yaşındadır ve Mesleği' . $y->pozisyon;

Konu anlatım:


Kategoriler: PHP