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