CodeIgniter MVC Yapısı

PHP'nin en tanınan frameworklerinden biri olan CodeIgniter'da Model-View-Controller Yapısını İnceleyelim

CODEIGNITER'DA MVC

Controller : application/controllers dosyası altında controller dosyamızı oluştururuz. Bu aslında trafik polisi gibi düşünebilinir. Model dosyalarımızla View dosyalarımızın arasındaki iletişimi sağlar.

Model : Model dosyalarımız, database ile ilgili olan işlerimizde kullandığımız dosyalarımızdır.

View: Sitemizin görsellikle ilgili dosyalarıdır. tpl, html, php gibi uzantılarda olabilirler.

BİR ÖRNEK : Mesela datamızdan kullanıcıların listesini çeken ufak bir script yapalım.

NOT : Eğer elinizde codeigniter yoksa www.codeigniter.com veya www.codeigniter.gen.tr adreslerinden temin edebilirsiniz.

İlk önce bir database oluşturalım. test datası altında kullanicilar adında bir tablo oluşturdum ve f_ID, f_kullaniciadi ve f_adsoyad şeklinde 3 tane de alan ekledim. Aşağıdaki resmi inceleyiniz.



Şimdi yazmaya başlamadan önce birkaç ayar yapmamız gerekiyor. system/application/config klasöründeki database.php dosyasını açalım ve aşağıdaki gibi bilgileri girelim.



Şimdide system/application/config klasöründeki autoload.php dosyasını açalım ve aşağıdaki gibi bilgileri girelim. Buradaki


<?php 

$autoload
['libraries'] = array();

?> ?>



satırını


<?php 

$autoload
['libraries'] = array('database','parser');

?> ?>



şeklinde değiştirelim. Böylece her database ve parser kütüphaneleri uygulamamıza otomatik olarak yüklenecektir.

Bu ayarları yaptıktan sonra, system/application/models klasörüne db_models.php adında bir dosya ekleyelim ve alttaki kodları yazalım.


<?php 
// ÖNEMLİ : class ismi dosya adıyla aynı olmalıdır.
// Ayrıca class isminin ilk harfi Büyük olmalıdır.
class Db_models extends Model {

    
// hepsiniVer adında bir fonksiyon oluşturduk.
    
function hepsiniVer(){
        
// tabloya bağlandık. bu kodu ilerleyen yazılarımızda açıklayacağız.
        
$_query $this->db->get("kullanicilar");

        
// eğer kayıt varsa
        
if ($_query->num_rows() > 0) {
            
//foreach dongusune sokarak
            
foreach ($_query->result() as $_row) {
                
// data değişkinine aktardık.
                
$_data[] = $_row;
            }
            
// fonksiyonun dönen değerini data değişkeni olarak ayarladık.
            
return $_data;
        }

    }

}

?> ?>



system/application/controllers klasörü altına mvc_kullanicilar.php adında dosya oluşturun ve kodları giriniz.


<?php 
// ÖNEMLİ : class ismi dosya adıyla aynı olmalıdır.
// Ayrıca class isminin ilk harfi Büyük olmalıdır.
class Mvc_kullanicilar extends Controller {

    
// index fonksiyonu sayfa yüklendiğinde çalıştırılan ilk fonksiyondur.
    
function index(){
        
//aşağıdaki kodla, oluşturduğumuz model dosyasını yukluyoruz.
        
$this->load->model('db_models');
        
//oluşturduğumuz model dosyasının hepsiniVer fonksiyonunu kullanarak
        //bilgileri dataya aktarıyoruz.
        
$data['kayitlar'] = $this->db_models->hepsiniVer();

        
// parser sınıfı ile de data değişkenindeki bilgilerin gerekli sayfayada gosterilmesini sağlıyoruz.
        
$this->parser->parse('mvc_kullanicilar.html',$data);
    }

}
?> ?>



Son olarak system/application/views klasoru altında mvc_kullanicilar.html dosyası oluşturalim ve aşağıdaki kodları girelim.


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kullanici Listesi</title>
</head>
<body>
{kayitlar}
{f_kullaniciadi}-{f_adsoyad}<br>
{/kayitlar}
</body>
</html>



Yukarıdaki kodları anlatmak gerekirse, controller dosyasındaki $_data['kayitlar'] değişkenindeki bilgileri almak için html dosyamızda {kayitlar} ve {/kayitlar} diye blok oluşturduk. Bunların içine de datadaki kullanıcı bilgilerini tutan alanların isimlerini yani {f_kullaniciadi} ve {f_adsoyad} taglarını girdik. Şimdi http://localhost/CI/index.php/mvc_kullanicilar adresine girerek sonuca bakalım. Sonuç mu ?



Evet gördüğünüz gibi kullanıcı bilgileri sayfamıza geldi.

Bu yazıda CODEIGNITER'IN MVC yapısını anlatmaya çalıştım. Umarım başarılı olmuşumdur. Bir sorun olursa lütfen yorumlarınızda bildiriniz.

Süleyman DENİZHAN
  • Etiketler;
Süleyman DENİZHAN Süleyman DENİZHAN
<?php echo "I Love CodeIgniter"; ?>
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Bravo, çok düzenli bir şekilde hazırlanmış bir ders. Eline sağlık. Editörlerin düzenlemek için hiç vakit harcamayıp direkt onayladıkları bir ders oldu. :)
CodeIgniter MVC yapısı'nı Her Proje'mizde Kullanabilir miyiz Hocam ? Tavsiye eder misiniz ? Yada Bu Yapı'nın Normal Sistemlerle ne tür farkı vardır ?. İyi günler. teşekkürler
Yorumlarınız İçin Tşk Ederim. @siracel Editörleri yormadığıma sevindim :) @ufk18 Genel olarak MVC'yi her yerde kullanmanızı tavsiye ederim. Zaten piyasadaki bütün frameworkler MVC destekliyorlar, desteklemeyenler de yeni sürümlerinde destek veriyor. Normal sistemler derken klasik php-html karışımını diyorsanız, CodeIgniter'ı kullanırken de göreceğiniz üzere, php-html karmaşıklığından bizi kurtarması, seo destekli url oluşturması, hızlı ve stabil olması, temiz sorguların kullanılmasını sağlaması gibi bir çok avantajı vardır. Daha ayrıntılı bilgiler için aşağıdaki linke bakmanı tavsiye ederim : http://codeigniter.gen.tr/user_guide/overview/features.html CodeIgniter'i hemen hemen bütün projelerinizde kullanabilirsiniz. En büyük avantajı Fatih BAZMAN tarafından kurulan www.codeigniter.gen.tr adresi sayesinde türkçe dökümanı olmasıdır.
elinize sağlık belki bu kitap faydalı olur. iyi çalışmalar. [url=http://hotfile.com/dl/87427421/338adc7/Professional20CodeIgniter.pdf.html]Professional Codeigniter[/url]

Yukarı Git