Herkese merhaba,
Bugün size php interface den bahsetmek istiyorum. PHP5 ile birlikte hayatımıza giren bir yenilik olan interface i görsel olarak düşünmeyelim. Aslında Yapı yani modelleme arayüzü olarak düşünebiliriz.
Örnek vermek gerekirse; bir veritabanı altyapısı hazırlıyorsunuz ve mysql,pgsql, oracle gibi birden fazla adaptorünüz var. Bu adaptörlerdeki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Veya Cache yapısı kuracaksınız; APC, memcache gibi cache yapıları kullanacaksınız ve yapılar aynı olacaksa interface kullanabilirsiniz. İnsan için interface tanımlayıp kadın erkek sınıflarını bu interfaceten türeterek cins ikisinde de cinsi iki sınıfada oldurmak istiyorsanı kullanabilirsiniz. Örnek çoğaltılabilir bankalar için sanal pos uygulamasında da kullanabilirsiniz vs.vs.
Özetle Bir projede birden fazla geliştiricinin olması gibi durumlarda standart yapının korunması amacı ile hazırlanır,bizim sınıfa bir standart getirmemizi sağlıyor. Yani o standartların dışına çıkamayacağımız bir sınıf yazmamızı sağlıyor. Ve yapı dışında birşey yapılmak istenirse hata sistem hata verir.
Bu standartları koruma nasıl bir fayda sağlayacak derseniz, göz hatası olabilir, dalgınlık olabilir veya başkasının yazdığınız kodları değiştirmesini istemiyorsunuz, burada interface kullanmanız mantıklı olacaktır.
Büyük projelerde özellikle kullanılır.
Veya diyelim framework lerde DB sınıfı için hazırlanmış olan interface kullanılırki çekirdek kodlar bozulmadan kullanıcılar isterse kendi sınıflarını türetsinler, bu sayede sınıf sizi standartlarına uymaya zorlar.
Lafı daha fazla uzatmadan bir kaç örnek vermek istiyorum sizlere;
ilk örneğimde size mysql, mssql gibi farklı veritabanı yapıları ile bağlantı sağlayabileceğiniz bir örnek vereceğim..
interface DB { public function connect(); public function error(); public function errno(); public static function escape_string($string); public function query($query); public function fetch_array($result); public function fetch_row($result); public function fetch_assoc($result); public function fetch_object($result); public function num_rows($result); public function close(); }