• 26-10-2010, 18:51:44
    #1
    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?
    • 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.

    Ö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.

    Kaynak : http://www.webteders.com/blog/detay/...i-nelerdir./11
  • 26-10-2010, 19:14:31
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Emeğinize sağlık hocam. Teşekkürler..
  • 26-10-2010, 19:27:17
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hocam Elinize Sağlık. Konu Bence SabitLenmeli..
    Tek Eksik Kısım Olusabilicek Dezavantajlarinda biLdiriLmesi sanirim daha iyio lurdu kanısındayim.
  • 26-10-2010, 19:32:54
    #4
    x ve y controllerımız var diyelim, x controllerından y'deki fonksiyona ulaşmak mvc yapısına göre yanlıştır. bir fonksiyon birden fazla yerde kullanılacaksa extend edilmelidir.
  • 27-10-2010, 01:16:01
    #5
    mvc frameworkler kullanmak daha mantıklı olur. sıfırdan mvc altyapısı hazırlamakla uğraşmazsınız.
  • 01-12-2010, 12:06:42
    #6
    Romansanta adlı üyeden alıntı: mesajı görüntüle
    Hocam Elinize Sağlık. Konu Bence SabitLenmeli..
    Tek Eksik Kısım Olusabilicek Dezavantajlarinda biLdiriLmesi sanirim daha iyio lurdu kanısındayim.
    Teşekkürler. MVC barındıran birçok proje yaptım ve şuana kadar bariz bir dezavantajı ile karşılaşmadım.