WM Dergi - 2.SAYI | Page 70

WM Dergi WM Dergi Türkiye ‘nin En Büyük ve Kapsamlı Webmaster Dergisi view plaincopy to clipboardprint? Interface Cache { public function setCache($value); public function unsetCache($value); public function getCache($value); } Burada “Cache” isminde bir arayüz oluşturduk. Sınıfları “Class Sınıfİsmi” şeklinde oluşturuyorduk. Arayüzleri de “Interface ArayüzAdı” şeklinde oluşturuyoruz.Arayüzü oluşturduktan sonra setCache, unsetCache ve getCache isminde 3 tane public fonksiyon oluşturduk ve bu fonksiyonlara “value” parametresini tanımladık. Ancak dikkat ederseniz bu fonksiyonların süslü parantezlerini açıp kodlarını yazmadık. Fonksiyon parantezinden sonra noktalı virgül ile satırı sonlandırdık. Yukarıda “Interface içinde sadece metodları tanımlarız ve herhangi bir işlevsel kod bulundurmayız.” derken kastettiğim şey tam olarak buydu. Artık bu arayüzün özelliklerini alarak oluşturulan tüm sınıflar bu kalıba uymak zorunda olacaktır. view plaincopy to clipboardprint? Class apc implements Cache { public function setCache($value) { // Önbelleğe Kaydet : // apc_add(‘fullName’, 70 Türkiye ‘nin En Büyük ve Kapsamlı Webmaster Dergisi ‘İbrahim Hızlıoğlu’); vb. } public function unsetCache($value) { // Önbellekten Sil // apc_delete(‘fullName’); vb. } public function getCache($value) { // Önbellekten Veriyi Oku // apc_fetch(‘fullName’); vb. } } Class memCache implements Cache { public function setCache($value) { // Önbelleğe Kaydet : // memcache_ add(‘fullName’, ‘İbrahim Hızlıoğlu’); vb. } public function unsetCache($value) { // Önbellekten Sil // memcache_ delete(‘fullName’); vb. } public function getCache($value) { // Önbellekten Veriyi Oku // memcache_ get(‘fullName’); vb. } } Burada ise “apc” ve “memcache” olmak üzere 2 tane sınıf oluşturdum. Sınıfları tanımlarken “implements Cache” yazdığımız için bu sınıflar “Cache” isimli arayüzde tanımladığımız standartlara göre kodlanmak zorunda olacak. O yüzden 2 sınıf içinde setCache, unsetCache ve getCache fonksiyonları olmak zorundadır. Aynı zamanda bu fonksiyonlara “value” parametresini de tanımlamamız gerekiyor. Eğer 3 fonksiyondan birini veya parametreleri tanımlamazsanız : “Fatal error: Declaration of memCache::getCache() must be compatible with that of Cache::getCache() in ...” , “Fatal error: Class memCache contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Cache::getCache) in ...” vb. ölümcül hatalar almanız kaçınılmazdır. NOT 1 : Cache sınıfı ve arayüzünü sadece örnek olması açısından çok basit bir şekilde hazırladım. O yüzden interface ve sınıf içeriklerinin modülerliğini dikkate almayın lütfen. NOT 2 : Bu makale Interface hakkında temel bilgileri içermektedir. Arayüzlerin genişletilmesi vb. diğer detaylar örneklendirilmemiştir. MVC NEDİR? AVANTAJLARI NELERDİR? Adını Model View Controller’in baş harflerinden alan tasarım desenidir. (Design Pattern) Sunduğu katmanlı mimari sayesinde, uygulamanın kullanıcı arayüzü ve mantık kısmını birbirinden ayırır. Php’de en fazla ihtiyaç duyulan ve kullanılan tasarım desenlerinden biridir. Ancak Php’ye özel bir kavram değildir. Bir platformdan bağımsız olarak C#, Java, Ruby on rails, Python vb. dillerde de kullanılabilir. MVC’nin kısaltılmış bir terim olduğunu belirttikten sonra şimdi de Model, View ve Controller’in ne olduğunu açıklamaya çalışayım Model Nedir? İş mantığı (Business Logic) bölümüdür. Tek katmandan oluşabileceği gibi, birden fazla katmanı da içinde barındırabilir. Tek katmandan oluştuğunda genelde veritabanına kayıt ekleme, kayıt çekme, kayıt silme vb. veritabanı işlemleri için kullanılır. Controller’den gelen değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz. View Nedir? Uygulamanın kullanıcıya gösterilen arayüzünün bulunduğu katmandır. Html, Css, Javascript vb. bu katmanda bulunur. Bu bölümde minumum php kodunun yazılması hedeflenmektedir. for, foreach, while vb. döngüler ile birlikte, dinamik değerleri ekrana yazdırmak için output komutları sıklıkla kullanılır. Controller Nedir? Uygulamanın karar mekanizmasıdır. Model ile View arasında köprü görevi görür. View katmanından gelen istekleri(request) model’e gönderir ve Model katmanından aldığı verileri view’e aktarır. MVC Kullanmanın Avantajları Nelerdir? Kullanıcıya sunulacak kodlar ile (Html, Css vb.) , sistemin çalışmasını sağlayan mantıksal kodları birbirinden ayırarak temiz ve düzenli kod yazımını kolaylaştırır. Kodlarda daha kolay optimizasyon yapılmasına, genişletilmesine ve yeniden kullanılmasına olanak sağlar. Ekip olarak çalışılan projelerde görev paylaşımını ve kodların okunabilirliğini arttırarak takım çalışmasına olanak sağlar. Kullanıcı arayüzünde yapılacak değişiklikler iş mantığı kısmından bağımsız olarak yapılabilir. (Front-End Developer, Back-End Developer birbirinden bağımsız olarak çalışabilir.) Hata ayıklamayı ve kodu test etmeyi kolaylaştırır. /controllerName/ functionName şeklinde sayfalara ulaşma imkanı sunar. İbrahim HIZLIOĞLU [email protected] 71