PHP interface

Merhaba,

Bugün PHP interface yapısından bahsetmek istiyorum. Bilindiği üzere interface Türkçe “arayüz” anlamına gelmektedir. Ancak, burada görsel birşeyler düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz. Birden fazla adaptorü olacak bir yapımızın olduğunu düşünelim. Örnek vermek gerekirse, bir veritabanı altyapısı hazırlıyorsunuz ve mysql, oracle gibi birden fazla adaptorünüz var. Bu adaptörlerdeki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir projede birden fazla geliştiricinin olması gibi durumlarda standart bir yapının korunmasını sağlamış olacağız. Yapı dışında birşey yapılmak istenirse hata alınacaktır.

Yapıdaki genel kuram bu şekilde. Şimdi kodlarla açıklamaya çalışacağım.

<?php
interface database{
   public function setData($data);
   public function getData($key);
}
?>

Yukarıda ki örnekte “database” isimli bir interface oluşturduk ve bu interface  kullanan tüm class larda “setData” ve “getData” methodlarının olmasının şart olduğunu söylemiş olduk. Burada methodlar süslü parantez açılarak tanımlanmaz. Sadece method ismi yazılır ve kapatılır.

Yine en önemli özelliklerinden biri de methodlara gönderilecek parametreleri dahi burada belirleyebiliyor olmamız. Eğer class içinde eksik parametre tanımlarsak hata vererek bizi bu yapıya uygun kod yazdırmaya zorlayacaktır.

?php
class mysql implements database{
    public function setData($data){
       // ilgili işlemler burada yapılır.
    }
    public function getData($key){
       // ilgili işlemler burada yapılır.
    }
    public function example1(){
       // başka methodlara ihtiyaç duyuyorsak ekleyebiliriz.
    }
}
class oracle implements database{
    public function setData($data){
       // ilgili işlemler burada yapılır.
    }
    public function getData($key){
       // ilgili işlemler burada yapılır.
    }
    public function example2(){
       // başka methodlara ihtiyaç duyuyorsak ekleyebiliriz.
    }
}
?>

Yukarıda ki örnekte oluşturduğum mysql ve oracle classlarının interface olarak “database” arayüzünü kullanmasını sağladım. Hata almamak için interface içinde belirtilen methodları tanımladım ve tüm sınıflarım standart bir yapıya kavuşmuş oldu. Yine örnekte görüldüğü üzere, interface kullanmak için “implements” yazdıktan sonra interface adını yazmamız gerekiyor.

Umarım faydalı olmuştur. Geliştirerek kendi projelerinizde de kullanabilirsiniz.

6 Comments

    PHP interface « kodluyorum

    […] düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz… Devamı için : PHP interface Share this:TwitterFacebookLike this:BeğenBe the first to like […]

    PHP interface | Boğaç Aslanyürek

    […] düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz… Devamı için : PHP interface This entry was posted in Professional by bogacaslan. Bookmark the […]

    PHP interface | yusufozkay

    […] düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz… Devamı için : PHP interface Share this:TwitterFacebookLike this:BeğenBe the first to like this. This entry was posted in […]

    Emre Macit

    ilk yazı olarak başarılı buluyor ve devamının gelmesini umut ediyorum.

    Ahmet Orsorlu

    Murat, çok güzel yazı olmuş başlangıç olarak. Eline sağlık.

    PHP interface | Gökhan Tunçkale | Blog

    […] düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz… Devamı için : PHP interface ShareFacebookTwitterStumbleUponMoreTumblrRedditLinkedInDiggEmailPrintLike this:BeğenBe the first […]

Emre Macit için bir cevap yazın Cevabı iptal et