MVC & CI Dosya Sistemi

mvcci

Merhaba arkadaşlar, bu yazımda Codeigniter ile web uygulama geliştirmeye başlamadan önce MVC ve CI içerisindeki bazı dosya yapılarından bahsetmek istiyorum. CI framework’ü MVC tasarım desenini temel alarak kurulmuştur. Öncelikle Codeigniter sitesine giderek CI’nin son sürümünü indirelim.

Ekran Resmi 2016-02-01 16.48.08

Şekildeki indirme linkinden dosyamızı zip olarak indirdiğimizde bu zip dosyamızı, Windows kullanan arkadaşlar için : xampp/htdocs/ içerisine, OS X işletim sistemi kullanan arkadaşlar ise MAMP/htdocs içerisine atabilirler. Dosyaları inceledikten sonra doğrudan localhost üzerinden default CI projesini görüntüleyeceğiz.Dosyaları zipten çıkarttığımızda şu görüntüleri göreceksiniz.

Ekran Resmi 2016-02-01 16.50.18Sırasıyla resimleri takip edersek öncelikle Codeigniter içerisinde application, system ve user_guide adında klasörler ile karşılaşacağız. Burada uygulamalar application klasörü altında geliştirildiği için biz de o klasöre yönleniyoruz.

 

Burada karşımıza birçok klasör çıkmaktadır. Bu klasörler CI’nin kullandığı MVC tasarım desenini de göstermektedir. MVC = M : Ekran Resmi 2016-02-01 16.54.54Models , V : Views , C : Controllers ‘ı ifade etmektedir. Bu klasörler dışındaki klasörlerde yeri geldikçe açıklanacak ve kullanımından bahsedilecektir. config klasörü ise projemizin tüm konfigürasyonlarını içermektedir. Bu klasörü de ayrıntılı inceleyeceğiz. Öncelikle MVC’den bahsedelim. MVC içerisinde bulundurduğu dosya sisteminde, belirli kurallar içerisinde veritabanı ile kullanıcı arasında işlemler yapmayı sağlayan bir tasarım desenidir. Peki nasıl çalışır MVC?

MVC içerisinde bulunan model-view-controller dosyaları adlarından da anlaşılacağı üzere işlem türüne göre dosyaları barındırmaktadırlar. Model klasörü içerisinde veritabanı işlemleri yer almaktadır. Veri işleme ile ilgili tüm metotlar burada gerçekleştirilir. Örneğin veritabanına bir kayıt yapacaksınız, bu kayıt sorgusu burada bir metotta çalıştırılır ve sonuç gönderilir. Controllers içerisinde ise kullanıcı ile veritabanı arasındaki bağlantıyı sağlayan sınıflar yer almaktadır. Örneğimize devam edelim, veritabanına kaydedilecek veriler controller içerisinde bir fonksiyondan modele gönderilir sonuç bu controller’a geri gelir. Views ise kullanıcı arayüzünü ifade etmektedir. Controllers işlemler sonunda elde ettiği veriyi view’e göndererek kullanıcıya sunar. En kısa anlatım ile MVC hayat döngüsü bu şekildedir. Daha ayrıntılı örnekler ile inceleyeceğiz.

Codeigniter dosya yapısı config klasörü içerisinde bulunan dosyalar da başlangıç esnasında fikir sahibi olmamız gereken dosyalardandır.

Ekran Resmi 2016-02-01 16.55.26Şekilde görüldüğü gibi config içerisinde birçok php dosyası bulunmaktadır. Bu dosyalar uygulama ayarlarını temsil eder. İlk aşamada seçili dosyaları bilmek yeterli olacaktır. Burada routes.php, config.php, autoload.php ve database.php ilk ayarlar açısından önemlidir. Bu dosyaların içerikleri ile alakalı “CI Başlangıç Ayarları” adı altında bir ders yayınlayacağım. Adlarından da anlaşılacağı üzere autoload içersinde uygulama çalıştığında otomatik yüklenmesi gereken kütüphaneler, helper dosyaları belirtilir. Routes içerisinde uygulama ilk çalıştığında ya da hata verdiğinde yapılması gereken yönlendirmeler belirtilir. Database dosyası içerisinde database ayarlamaları gerçekleştirilir. Son olarak config dosyası içersinde de sistemin ayarları yapılmaktadır. Bu dosyaların içerikleri hakkında ekstra bir yazı yayınlayacağımız için şimdilik burayı bırakıp, default codeigniter uygulamasına ve MVC dosyaları içerisindeki çalışma şekline göz atalım.

ci_default

Görüldüğü gibi karşımıza bir kullanıcı arayüzü çıktı, burada ne yazdığından çok bu ekranın MVC içerisinde nasıl gösterildiğinden bahsedelim. Öncelikle controllers içerisinde bulunan Welcome.php dosyasına bakalım.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

  public function index()
  {
    $this->load->view('welcome_message');
  }
}

Welcome sınıfı CI_Controller sınıfından türemiştir. Welcome controlleri çalıştığında ilk olarak index metodu devreye girer. Kod bloğunda görüldüğü gibi, sistem ‘welcome_message‘ view dosyasını kullanıcıya sunmak üzere yüklemiş. Kendi projelerimizde bizde istediğimiz view dosyasını bu şekilde yükleyeceğiz. Şimdi view içerisindeki welcome_message.php dosyasına göz atalım.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to CodeIgniter</title>

  <style type="text/css"
  </style>
</head>
<body>

<div id="container">
  <h1>Welcome to CodeIgniter!</h1>

  <div id="body">
    <p>The page you are looking at is being generated dynamically by CodeIgniter.</p>

    <p>If you would like to edit this page you'll find it located at:</p>
    <code>application/views/welcome_message.php</code>

    <p>The corresponding controller for this page is found at:</p>
    <code>application/controllers/Welcome.php</code>

    <p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a  href="user_guide/">User Guide</a>.</p>
  </div>

  <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo  (ENVIRONMENT === 'development') ?  'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>

</body>
</html>

View dosyaları da php olarak oluşturulmaktadır ve isimlerine göre controller içerisinde çağırılarak kullanıcıya sunulmaktadır. Model içerisinde herhangi bir model dosyası bulunmamaktadır. Çünkü bu default uygulamamızda veritabanı işlemi yapılmamıştır. İlerleyen derslerde veritabanı işlemleri esnasında model dosyalarını inceleyeceğiz.

Codeigniter çalışma sistemi ve MVC hakkında söyleyeceklerim şimdilik bu kadar. İlerleyen derslerde görüşmek üzere. İyi çalışmalar. Soru görüş ve istekleriniz için lütfen yorum yapınız..

No Comments

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir