makale ekle!
Profili Göster

Php Framework ve MVC Kavramı

İbrahim HIZLIOĞLU Tarih: 21/03/2010 Yorum: 7 adet

Okunma : 4174 Tutanlar: Bu yazıyı 1 kişi tuttu.

Türkiye'de henüz tam anlamıyla yaygınlaşmasada, framework yapıları her geçen gün popülaritesini arttırıyor. Framework yazılımın iskeletini oluşturan, sınıfları ve fonksiyonları içinde barındıran, geniş çaplı bir kütüphanedir. Yazılım geliştiriciler framework'ün sunduğu kütüphaneyi kullanarak daha kısa zamanda daha fazla iş üretebiliyor, daha düzenli bir yapı ortaya çıkarabiliyor ve dolayısı ile ileriye dönük çok daha kolay geliştirilebilir uygulamalar hazırlayabiliyorlar.

Framework kullanmanın avantajlarından bazılarını belirtmek gerekirse :

  • Bir çok framework'ün Model View Controller (MVC) yapısını barındırması
  • Bir çok yazılımcı tarafından test edilerek güvenlik ve performans kontrollerinin yapılmış olması
  • Projelerde ciddi bir zaman tasarrufu sağlaması
  • Düzenli ve Temiz kod yazımını kolaylaştırması
  • Ekip halinde proje geliştirirken karışıklığı önlemesi ve görev paylaşımını kolaylaştırması
  • Nesne tabanlı programlamayı kullanmış kişilerin kolayca öğrenebilmesi
  • İş görüşmelerinde avantaj sağlaması

Framework yapısını anlayabilmek ve etkin bir şekilde kullanabilmek için daha önce nesne tabanlı yazılım geliştirmiş olmanız gerekiyor. Eğer php dilini yeni öğrenmeye başlamışsanız ve nesneye dayalı programlamayı tam olarak kavrayamadıysanız framework dökümanları size karışık gelebilir.

Kısa önbilgilerden sonra biraz teknik detaylara inelim ve framework dünyasını tanımaya başlayalım. :) Framework'ler ile gelen en güzel avatajlardan biri MVC (Model View Controller) yapısına sahip olmalarıdır.

Model : Veritabanına kayıt girilmesi, kaydın güncellenmesi, kaydın getirilmesi vb. işlemleri yaptığımız kısımdır. (Kısaca insert, update, delete ve select işlemlerimizi yaparız.) Eğer model kısmı çok katmanlı bir yapıya sahipse database işlemleri dışında başka işlemlerde yapılabilir.

Controller : View ile model arasında köprü görevi görür. View'den gelen verileri model'e gönderir ve işler. Aynı zaman da model'in işlediği verileri de view e aktarır.

View : Uygulamanın ziyaretçilere göründüğü kısımdır. Html, Css, JavaScript vb. bu kısımda bulunur.

Bu yapı sayesinde kodlarımızı katmanlara ayırırız ve çok daha derli toplu bir proje yapımız olur. Farklı yazılımcılar standartlaşmış kod yapısı sayesinde projeyi çok daha kolay geliştirebilirler.

Mvc yapısı arayüz kodlaması yapan arkadaşlara da fayda sağlar. Php dosyasına tasarımı giydirirken kendisinin işine yaramayacak sql sorguları vb. diğer kodlarla uğraşmaz. Sadece echo ile ekrana basılan verileri ve döngüleri görür.

Forumlarda ve bloglarda takip ettiğim kadarıyla framework kullanmayanların "Ben kendi kütüphane mi yazarım işime bakarım. Niye başkalarının yazdığı kodları kullanıp hazırcılık yapayım!" diye mesajlarına sıkça rastlamaya başladım. Eğer freelance çalışıyorsanız ve kodlamayı sadece kendiniz yapıyorsanız framework kullanmanıza gerek olmadığını söyleyebilirim. Bu durumda kendi kütüphanelerinizi oluşturup kullanabilirsiniz. Ancak yazdığınız kodları sizden başka yazılımcıların da geliştirmesi gerekiyorsa ve bir şirkette yazılımcı olarak çalışıyorsanız framework kullanmanızın kaçınılmaz olacağını düşünüyorum. Çünkü sizden sonra işe başlayacak kişinin oturupta sizin kendi yazdığınız yapıyı çözmesi ve geliştirmeye başlaması ciddi bir zaman ve iş kaybı yaşatıyor. Bir framework kullanılsaydı işe kullanılan framework'ü bilen bir eleman alınırdı ve projeler aksamadan devam ederdi. Aynı durum sizin yeni bir işe başladığınızda da geçerli. Özellikle bu konuda şirket tecrübesi olan arkadaşlar başkalarının kodlarını inceleyip, çözmeye çalışmanın ne kadar sıkıntılı ve sinir bozucu bir iş olduğunu tecrübe etmişlerdir. :)

Zend, Codeigniter, Kohana, Symfony, CakePhp şuan Türkiye'de kullanılan en popüler uygulama çatıları olarak göze batıyor. Eğer php alanınında kariyer yapmak istiyorsanız, en az 1 framework kullanarak proje geliştiriyor olabilmeniz size avantaj sağlayacaktır.

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
yusuf gökhan 25/03/2010

cok güzel aciklamissiniz,tsk.ederim,ama simdi frameworklarla calismak nasil oluyor,mesela ben zend studio indirdim,bu anlattiginiz sey nasil uygulanir,nasil calisilir,bu konuda bilgi verebilirmisiniz,ben normal php kodu yazmak yerine classlar calismayi ögreniyorum artik,normal php kodlamasi artik gözümde cok kücüldü :) ,bende bu konuyu merak ediyordum,az daha aciklayici bilgi verirseniz sevinirim tesekkürler

Profili Göster
İbrahim HIZLIOĞLU 25/03/2010

Merhaba Yusuf,

http://www.webteders.com/dersler/ders/Php-CodeIgniter-Framework-Yapisina-Giris/241

http://www.webteders.com/dersler/ders/Php-CodeIgniter-Framework-Template-Sistemi/245

bu adreslerde görsel dersler hazırlamıştım. İzlediğinde framework yapısını daha iyi anlayabilirsin.

Profili Göster
yusuf gökhan 25/03/2010

tsk.ederim cevabiniz icin.hemen bakacam

Profili Göster
gorkem nar 6/06/2010

Framework konusunda sana kesinlikle katılıyorum.Ama hangisini kullanacağız ,sen hangisini öneriyosun. Teşekürler..

Profili Göster
Engin Engin 8/06/2010

Gerçekten harika bir makele teşekkürler. (framework yapısı güzel ama PHP kısmına katılmıyorum.. ASP.net daha sağlıklı diye düşünüyorum.)

Profili Göster
Yasemen Karakoç 17/06/2010

http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

Profili Göster
İbrahim HIZLIOĞLU 29/07/2010

@gorkem nar : Ben CodeIgniter kullanıyorum. CodeIgniter & Zend framework kullanabilirsin.

aç-kapa Bu makale ile ilgili olabilecek yazılar

yeni üyelik | şifremi unuttum

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 53 (50 kayıtlı, 3 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul