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.
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.
tsk.ederim cevabiniz icin.hemen bakacam
Framework konusunda sana kesinlikle katılıyorum.Ama hangisini kullanacağız ,sen hangisini öneriyosun. Teşekürler..
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.)
http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
@gorkem nar : Ben CodeIgniter kullanıyorum. CodeIgniter & Zend framework kullanabilirsin.
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 53 (50 kayıtlı, 3 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
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)









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