Frameworks ve MVC
Tarih: Ekim 3rd, 2009 | Yazar: Ertuğrul Erkan | Kategori: Php | Etiketler: anaçatı, framework, frameworks, mimari, model view controller, mvc, Php, php framework, php mvc, php performans, programlama, yazılım mimarisi | 3 Yorum »Daha önceden Smarty yazısında nesne-mvc mantığı hakkında azbuçuk birşeyler söylemiştik. Bu yazı da ise frameworks (anaçatıların) genel mantığı üzerine konuşacağız.
Yazının bir kısmı anlatım bir kısmı ise soru-cevap şeklinde. Bu sayede giriş ve muhtemel sorularınızı tek bir kanaldan alabileceksiniz.
Öncelikle Framework’ ler ve MVC yapısı hakkında çok ufak bir terimsel bilgi verelim. MVC yani Model-View-Controller ne demektir? Arkadaşlar MVC yi tek bir başlık gibi algılamayın. Aslında bu üç ana başlığın kısaltılmış halidir; Modelimiz, Görüntüleyicimiz ve Kontrol kısmımız. Aslına bakarsanız bu üç ana başlığı bir desen gibi görebilirsiniz. Zaten MVC, yazılım mühendisliğinde “mimari desen” olarak geçer. Programlama da mimari yapısı genel hatları ile MVC yi örter.
Şöyle örnek verelim; binanın dış görüntüsü bizim View yani Çıktı kısmımızdır. Modelimiz ise iç iskeletimiz ( kolonlar vs ) dir. Kontrol ise kullanıcılardır. Binayı ilk gördüğümüzde Model yapısı üzerinde çıktı alırız. Daha sonra kullanmaya başlayınca kontrol mekanizması aktif olur. Programlamadan örnek vermem gerekirse, diyelim bir blog yapıyoruz. Öncelikle blogun çalışma mantığını düşünürüz değil mi? İşte bu bizim modelimizdir. Daha sonra blogun yazılarının göstermek isteriz; bu da çıktıdır. Son olarak blogu yönetmek isteriz; bu da kontroldür. MVC nin ana iskelet yapısı böyle işler.
Peki MVC sayesinde ne kazanırız?
İşte burada projemizi arazi arabalarına benzetebiliriz. Her tekerlik bir iştir ve hepsi bağımsızdır. Eğer ki kontrol sistemi çökerse sistem bir anda uçmaz, bir süreliğine görüntü ve model işlemeye devam eder. Fakat burada Framework’ ler işin içerisine giriyor..
Framework’ ler nedir?
Framework’ ün tam olarak Türkçe karşılığı yoktur. Genelde Anaçatı adını kullanır. Her FW MVC yapısına göre kodlanır ve bize sunulur. Bu sayede çaba harcamadan MVC’ ye uygun kodlama yapmış oluruz. Şu anda piyasa da oldukça FW bulunmaktadır zaten. Ayrıca isim verip kafa karıştırmak istemiyorum..
Blog yapımına devam edelim. MVC ye uygun olsun diyoruz ama ona uygun kodlayabilmemiz için bir yapı iskeleti oluşturmamız lazım. İşte hemen bir FW bulup onun ek sınıflarını kullanıyoruz. Bu sayede sistem tamamen nesneye yönelik oluyor. Yani siz ayar.php diye bir dosya oluşturuyorsunuz, içerisine dosya, veritabanı, form, ajax, seo gibi sınıflardan birini çağırıyorsunuz. Zaten anaçatıların en büyük özelliği içerisinde çok fazla sınıf barındırması. Bu sayede yapılan her işlem OOP oluyor. Size sadece çağırıp, ayarlamanız kalıyor.
FW lerin bir küçüğüne ise Süper Sınıf adı veriliyor. Bu türü ise programcı kendi yazdığı için tercih ediyor. Yani birden fazla sınıfını yazıyor, bir proje olduğunda içerisine dahil ediyor. Bu da bir yöntem sayılır ama MVC’ nin ana yapısına ters düşer. Çünkü MVC’ de sistemler birbirinden ne kadar ayrı olsa da anaçatı sayesinde tek bir sınıfa bağlanır. Veritabanı işlemlerimiz kontrol kısmı ise bunu görüntüye bağlayabiliriz. İşleyişler farklı olsada, anaçatı sayesinde birbiri içerisine geçebilirler. Sırf bu nedenle MVC için FW ler öneriliyor.
Şematik olarak MVC yapısına bir bakalım..

İşte gördüğünüz gibi bir MVC yapı şeması. Sistem aslında oldukça basit. Ana işleçlerin tamamı kontrol kısmında. Bir sunucu üzerinde Request (talep) veya Response (yanıt) yapıyoruz. Bu sayede geri plandaki işlemler yapılmış oluyor.
Model kısmında ana mimari var. Zaten programcılığın ilk maddesini modeli hayal edebilmektir. Sonrasında ise görüntüleme, çıktılama var. Burası tüm işlemlerin son kısmı oluyor.
Bize performans kazandırır mı?
Eğer ki çok küçük bir projeniz varsa FW ler de MVC de gereksiz kalır. En azından blog, portal gibi sistemler -ve üstü- için gereklidir. Çünkü ekstra kod fazlalığı olacağı gibi bir de üstüne o FW yi çözmek gelir. Anaçatıların çoğu kendine has bir dil gibidir. Tamam yine Php kullanırız ama bu sefer de fonksiyonlar ortaya çıkar. Bir de onları öğrenmek zorunda kalırsınız..
Dikkat ederseniz çoğu yazılım sisteminde artık MVC kullanıldığını görürsünüz. SEO ve Ajax sınıflarını barından FW ler moda olmuş durumda. Sizin birşey yapmanız da gerekmiyor; sadece veritabanı şeması kurup birbirine bağlıyorsunuz. Çok yakın zamanda çeşitli FW ler hakkında ayrı ayrı derslerimize de geçeceğiz. Şimdilik MVC ve FW hakkında verilebilecek en geniş bilgiler bunlar.
Herkese iyi günler, iyi çalışmalar..
Benzer Yazılar;
- Video: Adobe Air ( Apollo ) Kurulumu – Kullanımı
- Php ile Smarty Motoruna Hızlı Giriş
- Görsel Ders: Php ile En Basit Üyelik Sistemi
- Görsel Ders: Php de İf Ve Random Terimleri
- Php ile Txt Dosyasına Veri Yazma

güzel bir anlatım olmuş benim gibi arkadaşlarada yararlı olacfak gibi
[...] MVC modeli hakkında daha önceden bahsetmiştik. Bu tip yapılar sayesinde karmaşık veyahut orta ölçekli (küçük ölçekliler için gereksiz kalır) projelerde ekstra preformans sağlar, düzenli ve grup çalışmasına yatkın yapılar elde ederiz. Php üzerinde MVC kavramı için pek çok Framework mevcut. Bunlar arasında küçük, hızlı ve gayet performanslı olan Kohana 3 ile ilk uygulamamız olan telefon defteri yapımına bakacağız. [...]
[...] Frameworks ve MVC [...]