• 28-10-2010, 11:48:54
    #1
    Framework, yazılımın iskeletini oluşturan, fonksiyon ve sınıflardan oluşan geniş çaplı bir kütüphaneye sahip uygulama çatısıdır. Framework proje sürecini hızlandırır, düzenli ve temiz kod yazımını kolaylaştırır ve yazılıma belli bir standart kazandırır.

    Piyasada bulunan çoğu framework kendi içinde MVC tasarım desenini barındırır. Ancak bu MVC ile FRAMEWORK'ün ayrılmaz 2 terim olduğu anlamına gelmiyor. Framework kullanmadan da MVC kullanılabilir.

    Kolay öğrenilebilmesi, Türkçe kaynağının bol olması, iyi bir performansa sahip olması vb. sebeplerle CodeIgniter, Türkiye'de en fazla kullanılan framework'lerden biri konumunda bulunuyor.

    FRAMEWORK KULLANMANIN AVANTAJLARI
    • Çoğu framework'ün içinde MVC'yi barındırması sayesinde, MVC'nin sunduğu tüm avantajlardan yararlanılması
    • Bir çok yazılımcı tarafından test edilerek güvenlik ve performans optimizasyonlarının yapılmış olması
    • Proje süreçlerini kolaylaştırması ve hızlandırması
    • 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ı
    • Barındırdıkları database adaptörleri sayesinde farklı Veritabanı türlerine kolay bir şekilde Entegre Edilebilmesi
    • İş görüşmelerinde avantaj sağlaması (Php Developer iş ilanlarını incelediğinizde "... Framework'üne hakim" , "En az 1 framework tecrübesi olan" vb. şartları sıkça görür olduk.)

    FRAMEWORK KULLANMAYA NASIL KARAR VERMELİYİM?

    Yukarıda framework kullanmanın avantajlarından bahsettim. Ama "Her proje de framework kullanın" gibi bir genelleme yapmak yanlış olur. Öncelikle geliştireceğimiz uygulamayı iyi analiz edip, ihtiyaçlarımızı net olarak belirlememiz gerekiyor. 5 sayfadan oluşan basit bir kurumsal site için framework kullanmanın avantajdan çok dezavantaj sunması muhtemeldir. Bu tür küçük projelerde işyükü fazla değildir ve projenin kodlarının devamlı geliştirilmesi gerekmez. O yüzden statik php ile hazırlayarak performans yönünden daha iyi bir sonuç elde edebiliriz.

    Orta ve büyük çaplı projeler geliştiriyorsak, ekip halinde çalışmamız gerekiyorsa bence framework kullanmak en iyi çözümlerden biri olacaktır. "İyi de orta ve büyük çaplı projeden kastın nedir?" diye sorabilirsiniz. Örneğin Video, haber, oyun portalları, arkadaşlık siteleri, blog uygulamaları vb. genelde içinde çok fazla kod barındıran ve ileriye dönük devamlı geliştirilmesi gereken projelerdir. O yüzden işyükü fazla olan ve gelişime açık projelerde framework tercih ederek ileride yaşayabileceğimiz sıkıntıları minumuma indirebilir, projenin hazırlanma sürecini hızlandırabiliriz.

    HANGİ FRAMEWORK'Ü KULLANMALIYIM?

    Bu soru sosyal ağlarda ve forumlarda en çok sorulan sorulardan biri sanırım. Sizlere direk bir isim vererek "Bunu kullanın" diyemem. Ancak Türkiye'de en çok hangi framework'lerin kullanıldığını yazarak ve kendi kullandığım framework'ten bahsederek sizin tercih alanınızı daraltabilirim.
    • CodeIgniter
    • Zend
    • Kohana
    • Symfony
    • CakePhp

    Bu frameworkleri indirip kurarak performans, güvenlik, iş süreci vb. yönlerden incelemenizi ve buna göre karar vermenizi tavsiye edebilirim.

    Ben projelerimde CodeIgniter'i kullanıyorum ve şuana kadar birçok projeyi CodeIgniter ile geliştirdim. Performans, güvenlik ve iş süreci yönünden herhangi bir sıkıntı yaşamadım. CodeIgniter'i tercih etmemin sebebi diğer framework'lere göre daha hızlı ve iyi bir dökümantasyona sahip olması diyebilirim. CodeIgniter'i kullanmaya az önce size önerdiğim gibi diğer framework'leri kurup inceleyerek karar verdim.

    Kaynak : http://www.webteders.com/blog/detay/...i-Nelerdir./12
  • 29-10-2010, 23:02:52
    #2
    Yazı çok güzel olmuş. Teşekürler

    Bu aralar smarty öğrenmeye çalışıyorum biraz kavradıktan sonra kendime öğrenmek için bir framework seçeceğim.
  • 30-10-2010, 04:04:22
    #3
    Üyeliği durduruldu
    Basit de olsa baştan sona proje yapılan bir video olsa, eminim bir çok kişi (başta ben) MVC yapısında çalışmaya başlar.

    nesne yazarak, mvc yapısında, framework kullanarak programlamak istiyorum. fakat çok sayıda makale okumama rağmen olayı kavramış değilim.
  • 30-10-2010, 04:39:41
    #4
    Üyeliği durduruldu
    Levye adlı üyeden alıntı: mesajı görüntüle
    Basit de olsa baştan sona proje yapılan bir video olsa, eminim bir çok kişi (başta ben) MVC yapısında çalışmaya başlar.

    nesne yazarak, mvc yapısında, framework kullanarak programlamak istiyorum. fakat çok sayıda makale okumama rağmen olayı kavramış değilim.
    MVC yapısını kavramak için buradaki(CakePHP) derslerden satın alabilirsin. MVC yapısını kavradıktan sonra diğer frameworkleri kullanmak çok zor olmuyor.

    Yada ücretsiz dersler edinmek istersen buradaki derslerden faydalanabilirsin ben bunlar ile yola başladım ve uygulama ile bütünleştirince çok güzel şekilde öğreti sağlıyor. Türkçe olarak ücretsiz kaliteli kaynaklar hakkında bilgim yok.
  • 30-10-2010, 04:56:39
    #5
    ufakta olsa biraz anlatayım . veritabanınız da ki her tablo yu 1 model olarak düşünün..

    yazilar
    yazarlar
    kategoriler
    diller.

    controller denen denetçiler ise hangi modelin nerede nasıl olarak gösterileceğini söyle örnek vermek olursa

    aşağıda verdiğim örner CODEIGNITER ın Ocular şablon motoru ile yapılmış bir controllerdır.
    bu arada bu controllerlar bir haber sitesi içindir. veritabanında 9000 tane 9 sütünlü haber sitenin yüklenme süresi amd phenom x3 2.10 ghz (3 işlemcili herbiri 2.1) 4GB ram ile 0.05 sn dir. framework yavaş çalışanlara cevaptır bu.
    class Main extends Controller
    {
    //sınıf oluşturuldu
       function Main()
       {
          parent::Controller();
    //buramaya main controller yanı anasayfa denetçimizin çalıştırılda neler yükleneceği vs vs
       }
    
       function index()
       {
    //eger bizden istenen metod anasayfanın görüntülenmesi ise
          $this->output->enable_profiler(true);
          $this->load->model('main_model', 'Main');
    // ana sayfamızda  ana sayfa banner manşet sidebar ve yazar modellerini yüklüyoruz. mesela anasayfamızda yazarlarımızın veya manşetteki haberlerimizi göstermek istiyoruz o modelleri ana sayfamızda yüklüyoruz.
          $this->load->model('banner_model', 'Banner');
          $this->load->model('manset_model', 'Manset');
          $this->load->model('sidebar_model', 'Sidebar');
         $this->load->model('yazar_model', 'Yazar');
         
         
         $this->Yazar->get_butun_yazarlar_son_yazi();
         // yazarların son yazılarını alıyoruz
    
          // 3 lu haber sutunlari
    
    //haberlerimiz 3 sutunda sol orta sağ . şuan yazdığım haber sisteminde böyle bir dizayn var bu nedenle
          $sol_sutun = $this->Main->get_sutun_news('sol_sutun');
          $orta_sutun = $this->Main->get_sutun_news('orta_sutun');
          $sag_sutun = $this->Main->get_sutun_news('sag_sutun');
    
    //Main modelimizin içinde veritabanımızdan sol orta ve sağ sutunlardaki haberleri almış oluyoruz ve bunları şablonumuza atıyoruz.
          $this->template->set('sol_sutun', $sol_sutun);
          $this->template->set('orta_sutun', $orta_sutun);
          $this->template->set('sag_sutun', $sag_sutun);
          //bitti
    
          //4 kategori sutunlari
    
    //burada ise get_five_news ile 0,8 kategori id si 0 olan ve limit 8 olan verileri alıyoruz ve bunları şablonumuza aktarız.
          $gundem = $this->Main->get_five_news(0, 8);
          $yerel = $this->Main->get_five_news(2, 8);
          $ekonomi = $this->Main->get_five_news(3, 8);
          $spor = $this->Main->get_five_news(4, 8);
    // asagidaki 4 satır kod ise  template imizde şablonumuzda yani $gundem_five_news  degiskenine obje olarak   gundem kategorisindeki son 8 haberi cekmektedir.  
    
    //foreach ($gundem_five_news as $gundem_haber):
    
    // echo $gundem_haber->title; // bize haber basligini vermektedir. obje bazli array bazli degil
    
    endforeach;
          $this->template->set('gundem_five_news', $gundem);
          $this->template->set('yerel_five_news', $yerel);
          $this->template->set('ekonomi_five_news', $ekonomi);
          $this->template->set('spor_five_news', $spor);
          //bitti
          
          
          //sidebar
    
          $en_cok_okunan = $this->Sidebar->get_encok_okunan_news(120, 10);
          $gundemde_one_cikanlar = $this->Sidebar->get_gundemde_one_cikanlar_news(5, 8);
     $this->template->set('en_cok_okunan', $en_cok_okunan);     
         $this->template->set('gundemde_one_cikanlar', $gundemde_one_cikanlar);
          //bitti
    
    
          
    
    
          // haber kisimlari bitti sira bannerlari cekmeye geldi
    
    
          $banner_uclu = $this->Banner->get_uclu_banner('3lu');
          $this->template->set('banner_uclu', $banner_uclu);
          
          // bannerlar bitti
    
    
          //manset baslangici
    
          $mansets = $this->Manset->get_manset();
          $this->template->set('mansets', $mansets);
    
    
          //manset bitis
    
    
          $this->template->render();
    
       }
    }
    
    bu kodlar biraz mvc nin nasil oldugu konusunda fikir sahibi ettiyse ne mutlu bana eger sorulariniz olursa lutfen bu baslik veya pm ile bana bildiriniz yardimci olmaktan memnuniyet duyarim
  • 30-10-2010, 06:21:18
    #6
    Üyeliği durduruldu
    JustGo, çok teşekkürler. açıkcası ingilizce videolardan pek bir şey anlayamıyorum. ama dökümanlar işime yarayacak

    Efe4ka, hocam size ne kadar teşekkür etsem az Konuyu işgal etmek istemiyorum pm atıyorum
  • 30-10-2010, 13:10:25
    #7
    @Levye :

    http://www.webteders.com/blog/detay/...rama-Ornegi/10

    bu adreste CodeIgniter'in MVC yapısını kullanarak veritabanında kayıt arama örneği paylaşmıştım.
  • 30-10-2010, 15:01:06
    #8
    çok güzel bilgi Paylaşım için teşekkürler. smarty hakkında biraz bilgi verirmisiniz hiç bilgim yok ama güzel bişey olduğunu düşünüyorum.
  • 30-10-2010, 15:16:54
    #9
    gerexiz adlı üyeden alıntı: mesajı görüntüle
    çok güzel bilgi Paylaşım için teşekkürler. smarty hakkında biraz bilgi verirmisiniz hiç bilgim yok ama güzel bişey olduğunu düşünüyorum.
    Smarty bir framework değil, template engine'dir.