Php’de OOP 4
Object Oriented Programming
Php’de OOP 4
Object Oriented Programming
Merhaba, bu yazmızda Php’de OOP(Object Oriented Programming) yani Nesne Yönelimli Programlama bölümünde 4.yazımızı paylaşacağız. Bu yazıda abstraction (soyutlama) ve interface (arayüz) işlemlerini göreceksiniz.
Tanımlar :
abstract : Belirtilecek olan herhangi bir sınıfı, soyut sınıf haline dönüştürmek için kullanılır.
interface : Belirtilecek olan herhangi bir sınıfı, soyut arayüz sınıfı haline dönüştürmek için kullanılır.
implements : Daha önceden oluşturulmuş olan herhangi bir arayüz sınıfını, ilgili sınıfa tanımlamak / uygulamak için kullanılır.
Tanımlama kuralları :
abstract :
- Soyut metodlar içerebilir.
- Normal metodlar içerebilir.
- Özellikler içerebilir.
- Sabitler içerebilir.
- Public, private veya protected tanımlaması yapılabilir.
- Herhangi bir sınıf sadece tek bir abstract’dan türeyebilir.
interface :
- Soyut metodlar içerebilir.
- Sadece public görünürlüğüne sahip olmak kaydıyla normal metodlar içerebilir.
- Sabitler içerebilir.
- Herhangi bir sınıfta birden fazla interface (arayüz) kullanılabilir.
Örnekler :
Örnek 1 :
<?php
abstract class Deneme{
abstract function tanim($parametreicerigi);
}
class Test extends Deneme{
}
?>

Yukarıdaki örnekte hata döndürür, çünkü soyut sınıf içerisinde bulunan metodlar mutlaka soyut sınıftan türeyen alt sınıflarda bulunmalıdır.
Örnek 2 : Örnek 1’in doğru hali
<?php
abstract class Deneme{
abstract public function tanim($parametreicerigi);
}
class Test extends Deneme{
public function tanim($parametreicerigi){
}
}
?>
Örnek 3 :
<?php
abstract class Tema{
abstract public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri);
abstract public function BodyAlani($icerik);
abstract public function FooterAlani($copymetni);
}
class UstAlan extends Tema{
public function HeaderAlani(){
}
public function BodyAlani(){
}
public function FooterAlani(){
}
}
?>

Yukarıdaki örnekte hata döndürür, çünkü eğer abstract sınıf tanımlanıyorsa içerisindeki metodlara türeyen sınıfta mutlaka kullanılmalı ama bu örnekte kullanılmadı.
Örnek 4 : Örnek 3’ün hatasız hali
<?php
abstract class Tema{
abstract public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri);
abstract public function BodyAlani($icerik);
abstract public function FooterAlani($copymetni);
}
class UstAlan extends Tema{
public function HeaderAlani($arkaplanrengi, $headerlogosu, $headerbanneri){
}
public function BodyAlani($icerik){
}
public function FooterAlani($copymetni){
}
}
?>
Örnek 5 : Özellik kullanılabilir
<?php
abstract class Deneme{
public $isim = "Uğur";
public const soyisim = "Kabak";
}
class Test extends Deneme{
}
?>
Örnek 6 : public, private veya protected kullanılabilir
<?php
abstract class Deneme{
public $isimbir = "Uğur";
public const soyisimbir = "Kabak";
private $isimiki = "Uğur";
private const soyisimiki = "Kabak";
protected $isimuc = "Uğur";
protected const soyisimuc = "Kabak";
}
class Test extends Deneme{
}
?>
Örnek 7 : interface kullanımı
<?php
interface Deneme{
public function tanim($parametreicerigi);
}
class Test implements Deneme{
}
?>
Yukarıdaki kod hata değeri döndürür, çünkü soyut arayüz sınıfı içerisinde bulunan metodlar mutlaka soyut arayüz tanımlanan sınıflarda da bulunmalıdır.
Örnek 8 : Örnek 7’nin doğru kullanım şekli
<?php
interface Deneme{
public function tanim($parametreicerigi);
}
class Test implements Deneme{
function tanim($parametreicerigi){
}
}
?>
Örnek 9 :
<?php
interface Crud{
public function Olusturma($tablodegeri, $benzersizkimlik);
private function Okuma($tablodegeri, $benzersizkimlik);
protected function Duzenleme($tablodegeri, $benzersizkimlik);
public function Silme($tablodegeri, $benzersizkimlik);
}
class Test implements Crud{
public function Olusturma($tablodegeri, $benzersizkimlik){
}
public function Okuma($tablodegeri, $benzersizkimlik){
}
public function Duzenleme($tablodegeri, $benzersizkimlik){
}
public function Silme($tablodegeri, $benzersizkimlik){
}
}
?>
Yukarıdaki örnek hata döndürür, çünkü interface (arayüz)’de kullanılan özellikler mutlaka public olmalıdır. Private veya protected kullanılamaz.
Örnek 10 : Örnek 9’un doğru hali
<?php
interface Crud{
public function Olusturma($tablodegeri, $benzersizkimlik);
public function Okuma($tablodegeri, $benzersizkimlik);
public function Duzenleme($tablodegeri, $benzersizkimlik);
public function Silme($tablodegeri, $benzersizkimlik);
}
class Test implements Crud{
public function Olusturma($tablodegeri, $benzersizkimlik){
}
public function Okuma($tablodegeri, $benzersizkimlik){
}
public function Duzenleme($tablodegeri, $benzersizkimlik){
}
public function Silme($tablodegeri, $benzersizkimlik){
}
}
?> 메타데이터
- post_id
- 7932ecdc2ff6
- slug
- phpde-oop-4-7932ecdc2ff6
- url
- https://medium.com/@uurkabak/phpde-oop-4-7932ecdc2ff6
- canonical_url
- https://medium.com/@uurkabak/phpde-oop-4-7932ecdc2ff6
- author_url
- https://medium.com/@uurkabak
- status
- ok
- fetched_at
- 2026-07-28 19:00:09