Php OOP Class

Benim gibi, yazılıma PHP 4 ile başlamışsanız, ilk kodlarınızı prosedürel olarak yazdıysanız. Yani PHP ile birlikte büyüdüyseniz, PHP 5 ile hayatımıza giren OOP‘nın ne kadar kıymetli olduğunu bilirsiniz 🙂

OOP Nedir ?

OOP (Object Oriented Programming) Türkçe’si NYP (Nesne Yönelimli Programlama) aslında kullandığımız tüm framework’lerin alt yapısınında çalışan yapıdır. Yazılımcıların duplicate kod yazmasına engel olmak için bire birdir. Belirli bir iş için yazdınız kodu diğer projelere taşımanızı ve kullanmanızı kolaylaştırır.

Class Nedir ?

Türkçesi sınıf olan Class terimi OOP‘in temel kavramlarındandır. Hedeflediğiniz işi yapacağınız kodların toplandığı kısımdır. Diğer bir değişle fonksiyonların ve değişkenlerin bir arada olduğu kod paketidir.

class className
{
    // değişken ve fonksiyonların yazılacağı kısım
}
$sinif = new className();

Erişim Biçimleri (Access Modifiers)

Erişim biçimleri adından da anlaşılacağı üzere class içinde yer alan değişken ve fonksiyonlara erişim şekillerimizi belirler.

Erişim BiçimiAçıklaması
PublicHer yerden erişim sağlanabilir.
PrivateSınıf dışından erişim sağlanamaz.
ProtectedSınıf ve bu sınıftan türetilen sınıflar tarafından erişilebilir.
FinalAdından da anlaşılacağı üzere sınıf veya fonksiyonun son halini temsil eder.
Override edilemez.
ConstSabit tanımlamak için kullanılır. PHP içerisinde ki define ile aynı işi yapar.
StaticPublic gibi çalışır. Farkı ise Static fonksiyon veya değişkenler ram’de
saklanıldığından performans için kullanılırlar.

Public

Public kullanılan en yaygın tanımdır. Bir fonksiyon veya değişken public olarak tanımladığında sınıfın her yerinden erişebilirsiniz. Bu sınıftan türetilen sınıflarda da kullanılabilir.

class Arac
{
    public $marka = "TOGG";
}

$arac = new Arac();
echo $arac->marka;

Private

Private olarak tanımlanan değişken ve fonksiyonlar sadece o sınıfın kendi fonksiyonları tarafından kullanılabilir. Private değişken ve fonksiyonlar sınıf dışından herhangi bir şekilde erişilemez ve kalıtım yoluyla aktarılmaz.

class Arac
{
    private $marka = null;

    public function setMarka($marka)
    {
        $this->marka = $marka;
    }

    public function getMarka()
    {
        return $this->marka;
    }

}

$arac = new Arac();
$arac->setMarka('TOGG');
echo $arac->getMarka();

Protected

Protected aslında private a benzer. Aralarında ki tek fark Protected kalıtım yolu ile de kullanılabilir.


class Arac
{
    private $marka = null;

    protected function setMarka($marka)
    {
        $this->marka = $marka;
    }

    protected function getMarka()
    {
        return $this->marka;
    }

}

$arac = new Arac();
$arac->setMarka('TOGG');
echo $arac->getMarka();

Final

Final olarak tanımlanan sınıflar ve fonksiyonlar adından da anlaşılacağı üzere sınıf veya fonksiyonun son halini temsil eder. Kullanılabilir ama override edilemez (değiştirilemez). PHP Class Extends konusunda daha detaylı anlayabilirsiniz.

class Arac
{
    public $marka = 'TOGG';

    final public function getMarka()
    {
        return $this->marka;
    }
}

$arac = new Arac();
echo $arac->getMarka();

Const

Const olarak tanımlanan değişkenler betik kodlarda kullanılan define ile aynı iş için kullanılır. Yani sabit tanımlamak için kullanılır. Final gibi değiştirilemezler.

class Arac
{
    const marka = 'TOGG';

    final public function getMarka()
    {
        return self::marka;
    }
}

$arac = new Arac();
echo $arac->getMarka();

Static

Static özelliği atanmış bir değişken veya fonksiyon ram de saklanır. Ram’de saklandığı için performansa yönelik kullanılır. Çok sık değişiklik içermeyen içeriklerde kullanmanızı tavsiye ederim. Ekstra olarak Class, new komutu ile başlatılmadan da kullanılabilir.

class Arac
{
    public static $marka = 'TOGG';

    public static function getMarka()
    {
        return self::$marka;
    }
}

//$arac = new Arac();
echo Arac::getMarka();

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir