• 21-03-2010, 14:09:01
    #1
    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 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.)

    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, CakePhp, Symfony ş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.

    Yazan : İbrahim HIZLIOĞLU
  • 21-03-2010, 14:13:21
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Oldukça Güzel Bir makale hocam. Teşekkürler.
  • 21-03-2010, 14:26:51
    #3
    Üyeliği durduruldu
    mvc demek framework demek değildir. model + controller +view birleşirse framework diyebiliriz.tabi amacı oysa.
    smarty mvc nin v si yani view i denilebilir.

    yapacağınız projeye göre framework kullanımı seçmek gerekir kişisel olarak işler yapılacaksa veya büyük bir proje değilse framework kullanıpta okadar bileşen yükleyip sunucuya yük vermeye gerek yoktur.


    kısaca ekliyim bende . güzel makale kolay gelsin
  • 21-03-2010, 14:55:55
    #4
    anlatım için teşekkürler fakat model view controller açıklamaları hatalı olmuş bana göre.

    model adında anlaşılacagı üzerine işimize yarayan sınıfların toplandıgı modellerdim (sadece veritabanı değil) email göndermek,database işlemleri,güvenlik,url gibi herşeyin yazılıp toplandıgı bölüme model denir.

    controller model klasöründeki sınıfların metotlarını kullanabileceğimiz bölümdür
    view controllerden donen sonuçların çıktıları alabileceğimiz bölümdür

    birde eklemek istiyorum model view controller ilişkisi sadece düzenektir framework yazıldıktan sonra bu sisteme göre düzenlenir eğer framework kullanmak istemiyorsanız kendi sınıflarınızı yazıp onlarıda kullanabilirsiniz.

    tekrar makale için teşekkürler.
  • 21-03-2010, 15:13:56
    #5
    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    Oldukça Güzel Bir makale hocam. Teşekkürler.


    BHCoder adlı üyeden alıntı: mesajı görüntüle
    mvc demek framework demek değildir. model + controller +view birleşirse framework diyebiliriz.tabi amacı oysa.
    smarty mvc nin v si yani view i denilebilir.

    yapacağınız projeye göre framework kullanımı seçmek gerekir kişisel olarak işler yapılacaksa veya büyük bir proje değilse framework kullanıpta okadar bileşen yükleyip sunucuya yük vermeye gerek yoktur.

    kısaca ekliyim bende . güzel makale kolay gelsin
    Yorumunuz için teşekkürler. Tabi ki mvc = framework demek değildir. Ancak framework'ler ile mvc ayrılmaz güzel bir ikilidir.

    RedZ adlı üyeden alıntı: mesajı görüntüle
    anlatım için teşekkürler fakat model view controller açıklamaları hatalı olmuş bana göre.

    model adında anlaşılacagı üzerine işimize yarayan sınıfların toplandıgı modellerdim (sadece veritabanı değil) email göndermek,database işlemleri,güvenlik,url gibi herşeyin yazılıp toplandıgı bölüme model denir.

    controller model klasöründeki sınıfların metotlarını kullanabileceğimiz bölümdür.

    view controllerden donen sonuçların çıktıları alabileceğimiz bölümdür

    birde eklemek istiyorum model view controller ilişkisi sadece düzenektir framework yazıldıktan sonra bu sisteme göre düzenlenir eğer framework kullanmak istemiyorsanız kendi sınıflarınızı yazıp onlarıda kullanabilirsiniz.

    tekrar makale için teşekkürler.
    Öncelikle yorumunuz için teşekkür ediyorum. Ancak yazmış olduğunuz mvc tanımına katılmıyorum.

    View sadece controller den gelen çıktıları kullanıcılara yansıtmaz. Aynı zamanda kullanıcıdan gelen data ları controller'e aktarır.

    Controller view'den gelen data ları alır işler ve gerekli kontrolleri yaptıktan sonra model'e gönderir. Aynı zaman da model den gelen dataları view e aktarır.

    Tabi katmanlar ihtiyaca göre oluşturulduğu için size model katmanında sadece database işlemlerini kullanmak yetersiz gelebilir. Bu durumda model kısmını çok katmanlı bir mimariye getirerek başka işlemler içinde kullanabiliriz.

    Framework ve mvc üzerine yüzeysel bir makale hazırladığım için model kısmını çok detaylandırıp yeni başlayacak arkadaşlarında kafalarını karıştırmak istemedim doğrusu.

  • 21-03-2010, 16:05:51
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şu sıralar MVC'yi sıkça duymaya başladım. Nesne tabanlı programlama biraz karışık geliyor bana (Daha doğrusu ısınamadım keretaya. ).

    Makale gerçekten kısa ve özdü. ++rep =)
  • 21-03-2010, 23:41:28
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    OfisSoft hocam makale için teşekkürler. nacizane bir sorum olacak. framework ile çalışmak güvenlik açısından bir avantaj mıdır? mesela ekrana basılan değişkenleri otomatik escape eden fonksiyonlar mı var XSS türü açıkları engellemek için veya SQL injection açıklarını filtrelemek için?
  • 22-03-2010, 00:03:00
    #8
    by_grafitus adlı üyeden alıntı: mesajı görüntüle
    Şu sıralar MVC'yi sıkça duymaya başladım. Nesne tabanlı programlama biraz karışık geliyor bana (Daha doğrusu ısınamadım keretaya. ).

    Makale gerçekten kısa ve özdü. ++rep =)
    Teşekkürler.

    AndyCap adlı üyeden alıntı: mesajı görüntüle
    OfisSoft hocam makale için teşekkürler. nacizane bir sorum olacak. framework ile çalışmak güvenlik açısından bir avantaj mıdır? mesela ekrana basılan değişkenleri otomatik escape eden fonksiyonlar mı var XSS türü açıkları engellemek için veya SQL injection açıklarını filtrelemek için?
    Siz bir uygulama geliştirirken bilmediğiniz bir açık için önlem almamış olabilirsiniz. Yada projeyi geliştirirken dalgınlığınıza gelip unuttuğunuz güvenlik kısımları olabilir. Framework yapısında güvenlik testleri bir çok kişi tarafından yapılmıştır. O yüzden %100 güvenlik sağlar demesemde, güvenlik açısından faydaları vardır.

    Klasik bir açık olan sql injection dan örnek vermek gerekirse :

    CodeIgniter'da database işlemleri için active records'u kullandığınızda, get veya post ile aldığınız verileri direk sql'e sokarsanız otomatik olarak replace işlemlerini yapar.
  • 22-03-2010, 00:10:56
    #9
    OfisSoft adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler.



    Siz bir uygulama geliştirirken bilmediğiniz bir açık için önlem almamış olabilirsiniz. Yada projeyi geliştirirken dalgınlığınıza gelip unuttuğunuz güvenlik kısımları olabilir. Framework yapısında güvenlik testleri bir çok kişi tarafından yapılmıştır. O yüzden %100 güvenlik sağlar demesemde, güvenlik açısından faydaları vardır.

    Klasik bir açık olan sql injection dan örnek vermek gerekirse :

    CodeIgniter'da database işlemleri için active records'u kullandığınızda, get veya post ile aldığınız verileri direk sql'e sokarsanız otomatik olarak replace işlemlerini yapar.
    tabi frameworkun kendi veritabanı apisini kullandığımda bu güvenlik önlemini almış olucam kendi sorgularımı yaparken yine kontrol etmem gerekecek anladığım kadarıyla. ama yine frameworkun escape fonksiyonlarını kullanabilirim bu esneklik var dimi? zaman ayırıp cvp verdiğiniz için teşekkürler sitenizdeki videolarınızıda takip ediyorum faydalanıyoruz allah razı olsun güç kuvvet versin her zaman