PHP, Nesne Yönelimli Programlama (OOP) desteği sunarak kodların daha düzenli, esnek ve yeniden kullanılabilir olmasını sağlar. OOP sayesinde sınıflar (class), nesneler (object), kalıtım (inheritance), arayüzler (interface) gibi kavramları kullanarak daha modüler bir yapı oluşturabiliriz.
1. OOP Nedir?
Nesne Yönelimli Programlama (OOP), kodları nesneler ve sınıflar etrafında organize eden bir programlama yaklaşımıdır. OOP sayesinde:
✅ Kod tekrarını azaltabiliriz.
✅ Projeler daha düzenli ve yönetilebilir olur.
✅ Büyük projelerde daha esnek ve ölçeklenebilir kodlar yazabiliriz.
2. Sınıflar (Class) ve Nesneler (Object)
OOP’nin temelinde sınıflar (class) ve nesneler (object) bulunur.
🔹 Sınıf (Class): Bir nesnenin şablonudur. İçinde değişkenler (özellikler) ve fonksiyonlar (metotlar) bulunur.
🔹 Nesne (Object): Sınıftan türetilmiş, onun özelliklerini ve metotlarını kullanabilen somut bir varlıktır.
Örnek: Basit Bir Sınıf ve Nesne Oluşturma
<?php
class Araba {
public $marka;
public $model;
public $yil;
public function bilgileriGoster() {
return "Araba: $this->marka, Model: $this->model, Yıl: $this->yil";
}
}
// Nesne oluşturma
$benimArabam = new Araba();
$benimArabam->marka = "Toyota";
$benimArabam->model = "Corolla";
$benimArabam->yil = 2020;
echo $benimArabam->bilgileriGoster();
?>
💡 Sonuç:
Araba: Toyota, Model: Corolla, Yıl: 2020
Burada Araba sınıfını oluşturduk ve bilgileriGoster()
metodu ile bilgileri ekrana yazdırdık.
3. Kurucu Metot (Constructor) Kullanımı
Kurucu metodlar, bir sınıftan nesne türetildiğinde otomatik olarak çalışan özel metotlardır.
PHP’de kurucu metodlar __construct()
olarak tanımlanır.
Örnek: Constructor Kullanımı
<?php
class Araba {
public $marka;
public $model;
public $yil;
public function __construct($marka, $model, $yil) {
$this->marka = $marka;
$this->model = $model;
$this->yil = $yil;
}
public function bilgileriGoster() {
return "Araba: $this->marka, Model: $this->model, Yıl: $this->yil";
}
}
// Nesne oluştururken parametre geçiyoruz
$benimArabam = new Araba("BMW", "5 Serisi", 2021);
echo $benimArabam->bilgileriGoster();
?>
💡 Sonuç:
Araba: BMW, Model: 5 Serisi, Yıl: 2021
4. Erişim Belirleyiciler (public, private, protected)
PHP’de erişim belirleyiciler (access modifiers), sınıf içindeki özelliklerin ve metodların erişim seviyelerini belirler.
🔹 public
→ Her yerden erişilebilir.
🔹 private
→ Sadece sınıfın içinden erişilebilir.
🔹 protected
→ Sınıf içinden ve miras alınan (kalıtım yapılan) sınıflardan erişilebilir.
Örnek: private Kullanımı
<?php
class Kullanici {
private $sifre; // Sadece sınıf içinden erişilebilir
public function setSifre($sifre) {
$this->sifre = md5($sifre); // Şifreyi güvenli hale getir
}
public function getSifre() {
return $this->sifre;
}
}
$kullanici = new Kullanici();
$kullanici->setSifre("12345");
echo $kullanici->getSifre();
?>
Burada $sifre
değişkeni private
olduğu için dışarıdan doğrudan erişilemez.
5. Kalıtım (Inheritance) Kullanımı
Kalıtım, bir sınıfın başka bir sınıftan özellikleri ve metodları miras almasını sağlar.
extends
anahtar kelimesi ile bir sınıf başka bir sınıftan türetilebilir.
Örnek: Kalıtım Kullanımı
<?php
class Hayvan {
public $isim;
public function __construct($isim) {
$this->isim = $isim;
}
public function sesCikar() {
return "Bir ses çıkardı!";
}
}
// Köpek sınıfı, Hayvan sınıfından miras alıyor
class Kopek extends Hayvan {
public function sesCikar() {
return "$this->isim havladı!";
}
}
$kopegim = new Kopek("Karabaş");
echo $kopegim->sesCikar();
?>
💡 Sonuç:
Karabaş havladı!
Kopek
sınıfıHayvan
sınıfından miras aldı.sesCikar()
metodunu override (ezme) işlemiyle değiştirdi.
6. Arayüzler (Interfaces) Kullanımı
PHP’de interface (arayüz), sınıfların hangi metotları içermesi gerektiğini belirler.
🔹 Bir sınıf birden fazla interface kullanabilir.
🔹 Interface içinde metotların sadece imzaları bulunur, gövdesi olmaz.
Örnek: Interface Kullanımı
<?php
interface Ucabilir {
public function uc();
}
class Kus implements Ucabilir {
public function uc() {
return "Kuş uçuyor!";
}
}
$guvercin = new Kus();
echo $guvercin->uc();
?>
💡 Sonuç:
Kuş uçuyor!
Burada Ucabilir
arayüzünü oluşturarak, Kus
sınıfına uçma özelliği kazandırdık.
7. PHP OOP ile Özet
Kavram | Açıklama |
---|---|
Sınıf (Class) | Bir nesnenin şablonudur. |
Nesne (Object) | Sınıftan türetilmiş bir örnektir. |
Kurucu Metot (Constructor) | Nesne oluşturulurken otomatik çalışan metottur. |
Erişim Belirleyiciler | public , private , protected ile erişim sınırlandırılır. |
Kalıtım (Inheritance) | Bir sınıfın başka bir sınıftan miras almasıdır. |
Interface (Arayüz) | Bir sınıfın belirli metotları uygulamasını zorunlu kılar. |
Bu bilgilerle PHP’de Nesne Yönelimli Programlama kullanarak daha modüler ve esnek projeler geliştirebilirsiniz! 🚀