class-object-interfaces

Soyut Sınıflara Çok Benzerler Soyut Sınıflardan Ayrıldıkları Temel nokta Methodların Gövdeleri Yazılmaz Ne İş Yaptıkları Tanımlanmaz.
İşlevleri Ara Yüzü Kullanacak Olana Sınıflarda Kılavuzluk Yabmalarıdır.
Bütün Methodlar Public Olarak Tanımlanmalıdır.
Bu Sınıflar Bir Ana Sınıf Görevi Üstlenir Ve Alt Sınıflar Bu Sınıfın Methodlarını Barındırmak Zorundadır.
Ara Yuzler interface Anahtar Sözçüğü Kullanılarak Tanımlanır.
Bir Ara Yüzü Gerçekleşdirmek İçim implements Operatörü Kulllanılır.
<?php
interface haberlerimiz
{
public function ekle($tablo, $baslik, $detay);
public function sil($tablo, $id);
}
abstract class haberler implements haberlerimiz
{
public function __construct()
{
$this->db = @new mysqli('localhost', 'root', '1234', 'deneme');
if ($this->db->connect_errno)
die("Hata:" . $this->db->connect_error);
$this->db->set_charset('utf8');
}
public function sorgu($tablo, $limit = 10)
{
$sorgu = $this->db->query("SELECT * FROM $tablo
ORDER BY id DESC limit $limit");
while ($row = $sorgu->fetch_assoc()) {
$kayit[] = $row;
}
return $kayit;
}
public function ekle($tablo, $baslik, $detay)
{
return $this->db->query("INSERT INTO $tablo
VALUES(null,'$baslik','$detay')");
}
public function sil($tablo, $id)
{
return $this->db->query("DELETE FROM $tablo WHERE id='$id'");
}
public abstract function parametre($tablo, $limit);
public abstract function ozet();
}
class spor extends haberler
{
public function __construct()
{
parent::__construct();
}
public function parametre($tablo, $limit = 10)
{
$this->sonuclar = $this->sorgu($tablo, $limit);
$this->tablo = $tablo;
}
public function ekle($tablo, $baslik, $detay)
{
return parent::ekle($tablo, $baslik, $detay);
}
public function sil($tablo, $id)
{
return parent::sil($tablo, $id);
}
public function ozet()
{
foreach ($this->sonuclar as $sira => $bilgi) {
echo '<h3>' . $bilgi['baslik'] . '</h3>';
echo $bilgi['icerik'];
}
}
}
class magazin extends haberler
{
public function __construct()
{
parent::__construct();
}

public function parametre($tablo, $limit = 10)
{
$this->sonuclar = $this->sorgu($tablo, $limit);
$this->tablo = $tablo;
}
public function ekle($tablo, $baslik, $detay)
{
return parent::ekle($tablo, $baslik, $detay);
}
public function sil($tablo, $id)
{
return parent::sil($tablo, $id);
}
public function ozet()
{
foreach ($this->sonuclar as $sira => $bilgi) {
echo '<h3>' . $bilgi['baslik'] . '</h3>';
echo $bilgi['detay'];
}
}
}

try {
$spor = new spor();
$spor->ekle("spor", "Test başlık 1", "Test içerik 1");
$spor->ekle("spor", "Test başlık 2", "Test içerik 2");
$spor->parametre("spor", 3);
$spor->ozet();

$spor = new magazin();
$spor->ekle("magazin", "Magazin başlık 1", "Magazin içerik 1");
$spor->ekle("magazin", "Magazin başlık 2", "Magazin içerik 2");
$spor->parametre("magazin", 3);
$spor->ozet();
}
catch (Exception $ex) {
echo $ex->getMessage();
}