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 NEDİR?
İş 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 NEDİR?
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 NEDİR?
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 KULLANMANIN AVANTAJLARI NELERDİR?
ÖRNEK
Php framework'lerinden biri olan CodeIgniter ile MVC mimarisinin kullanımı üzerine bir yazıyı önceden paylaşmıştım. Buraya tıklayarak veritabanından arama yaptığımız örneğe ulaşabilirsiniz.