18 Şubat 2015 Çarşamba

CodeIgniter - 1 - Merhaba Dünya


Anlatıma Giriş

Öncelikle belirtmek isterim ki, bu satırları yazdığım sırada CodeIgniter'ı yeni öğreniyorum ve hem bilgi paylaşımına katkıda bulunmak, hem de daha iyi öğrenmemi sağlamak için bu blog'u yazıyorum. Mümkün olduğunca karmaşayı önleyerek anlatmayı hedefliyorum. Şimdi sözü çok uzatmadan, konuya girelim...

Edit: Üzülerek söylüyorum. Bu yazı dizisi yarım kaldı. Size CodeIgniter mantığını öğretecek kadar ilerliyor ama tamamlanmayacağını da baştan söylemek isterim.

CodeIgniter'ı Yüklemek

1) codeigniter.com sitesine girerek CodeIgniter'ı download edin.

2) Localhost'unuzda web sitelerini çalıştırdığınız klasörün altına bir klasör açın. (Yeni bir site kodlamaya başlıyoruz) Örneğimizde bu klasörün adı "ders.com" olsun. (Siz projenize ne ad verecekseniz onu verebilirsiniz.) Ben XAMPP kullandığım için, klasörümün yolu şudur:
c:/xampp/htdocs/ders.com/

3) Kurulum tamam. Projeyi çalıştırmak için tarayıcınızın adres çubuğuna
localhost/ders.com/
yazdığınızda bir CodeIgniter'a Hoşgeldiniz sayfasıyla karşılaşırsınız. Bu sayfa, varsayılan olarak ana sayfadır. ders.com/application/views/welcome_message.php dosyasını açıp, bu sayfayı dilediğinizce değiştirebilirsiniz. Şuanda Merhaba Dünya'mızı yapmış olduk.

Ama şuan siz, "Ben kendi oluşturduğum sayfaya 'Merhaba Dünya' yazmak istiyorum" diyorsunuz. Bu yüzden, aşağıdaki adımlarla devam edelim:

4) ders.com/application/config/routes.php dosyasını açıp, şu satırı:
$route['default_controller'] = 'welcome';
şu şekilde:
$route['default_controller'] = 'anasayfa';
değiştirin. Böylece varsayılan giriş sayfamızı, kendi hazırlayacağımız sayfayla değiştireceğiz. Artık CodeIgniter, varsayılan giriş sayfası olarak welcome adlı Controller yerine, anasayfa adlı Controller'ı arayacak. ('Controller da nedir?' diyorsanız, MVC mimarisi hakkında araştırma yapabilirsiniz.)

5) Şimdi, anasayfa adlı controller'ımızı oluşturacağız. Controller, ziyaretçilerimize gösterilen html sayfanın programatik yönünü düzenleyeceğimiz bölümdür. İlerledikçe, mantığı daha iyi kavrayacağınızı düşünüyorum...

ders.com/application/controllers/ klasörü altına anasayfa.php adında bir dosya oluşturun. Bu dosyanın içine, şu kodları yazın:
<?php 
/*Bu sayfaya direkt erişimi önlemek için, standart olarak kullanacağımız kodu yazıyoruz.*/
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/*CI_Controller sınıfından miras alan, anasayfa adlı bir class oluşturuyoruz.
Bu class, dosyanın adıyla (anasayfa.php) aynı ada sahip olmalı.*/
class anasayfa extends CI_Controller
{    
    /*index() fonksiyonu, sayfaya herhangi bir parametre gelmediği durumda otomatik olarak çalıştırılacak fonksiyondur. Ama bunu, __construct() fonksiyonuyla karıştırmayın. Kurucu fonksiyon, her durumda çalışacak olan fonksiyondur. Onu da yazabilirdik ama şimdilik lüzum yok*/
    public function index()
    {
        /*anasayfa.php adlı View dosyamızı çağırıyoruz. (Bu view dosyasını henüz oluşturmadık.)*/
        $this->load->view('anasayfa');
    }
}
?>
Yorum satırlarını silin. Böylece, ilk controller'ımızı oluşturmuş olduk. Şimdi, HTML kodlarını yazacağımız, ziyaretçiye gösterilen sayfayı oluşturacağız.

6) ders.com/application/views/ klasörü altına anasayfa.php adında bir dosya oluşturuyoruz. Bu dosya, controller'da $this->load->view('anasayfa'); satırıyla çağırdığımız dosyadır. Dosyanın adı anasayfa olmak zorunda mı? Değil. Ama biz anlamakta zorluk çekmemek için controller'la aynı adı verebiliriz. Veya karışmasını önlemek için anasayfa_view.php olarak da adlandırabilirdik. O zaman da controllerdaki satır şu şekilde olmalıydı:
$this->load->view('anasayfa_view');

Şimdi views klasörü altına oluşturduğumuz anasayfa.php dosyanızı açın. Bu sayfaya, dilediğinizce HTML kodu yazın. Normal bir HTML sayfayı nasıl yapıyorsanız öyle... Ama şimdilik başka sayfalara link vermeyin. Bu başka bir konu. Örnek olarak şu kodları sayfanıza ekleyebilirsiniz:
<!doctype html>
<html lang="tr-TR">
<head>
    <meta charset="UTF-8">
    <title>Sayfa Başlığı</title>
    <style>
        h1 { font-family:Verdana; }
    </style>
</head>
<body>
    <h1>Merhaba Dünya</h1>
</body>
</html>

Böylece ilk merhaba dünya sayfamızı oluşturmuş olduk. Tarayıcınızı açıp
localhost/ders.com
dediğinizde, varsayılan olarak oluşturduğumuz bu sayfa görüntülenecek.


Neler Oldu, Bu Sayfa Nasıl Görüntülendi?

> localhost/ders.com şeklinde isteği gönderdik.
> CodeIgniter, routes.php dosyasında, varsayılan olarak gösterilen controller adına baktı ve "anasayfa" yazdığını gördü.
> controller klasörü aldınta anasayfa.php adlı dosyayı aradı. Buldu.
> O dosyadaki anasayfa adlı class'ı işletti. Herhangi bir parametre olmadığından, class'ın index() fonksiyonunu işletti.
> Fonksiyonun içinde, anasayfa adlı view'in çağırıldığını gördü.
> View klasörüne baktı ve anasayfa.php adlı dosyayı aradı. Buldu. Gösterdi.

Bir sonraki bölümde görüşmek üzere...

Yorumlarınızı bekliyorum... İyi kodlamalar. :)

Sonraki Ders: CodeIgniter - Template Sistemi

Site Haritası

CodeIgniter Yayınları 1. Merhaba Dünya : CodeIgniter'da Merhaba Dünya yazısını görün... 2. Template Sistemi : CodeIgniter ile sta...