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 adaptorlerde ki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir proje de 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ıda ki 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(){
// standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya 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(){
// standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya 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 classları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. Devamı için :
PHP interface
Hiç yorum yok:
Yorum Gönder
Yorumunuzu esirgemeyiniz..