Yeni Başlayanlar İçin CodeIgniter #2 – URL Yapısı

Merhabalar,

Bu derste sizlere CodeIgniter Framework‘teki URL yapısından bahsedeceğim. Öncelikle isterseniz bu konuya CodeIgniter‘ın kendi sitesinden bakabileceğiniz linki vereyim. Buraya tıklayarak resmi dökümantasyonun ilgili sayfasına gidebilirsiniz. İngilizceniz varsa tabi, aksi takdirde yazımı okumaya devam edebilirsiniz. Yazımın yanı sıra konu ile alakalı videom da var. Onu da hemen aşağıdan izleyebilirsiniz.

CodeIgniter’da URL yapısı tam olarak şu şekilde.

http://siteismi.com/Controller-Sınıfı/Controller-Metodu/Parametre-1/…../Parametre-n

Burada Controller ismi kısmından sonraki kısım kısmen opsiyonel. Yani şöyle ki Controller ismi yazdıktan sonra eğer Controller metodu ve parametre girmezseniz varsayılan olarak Controller metodu olarak index metodu seçiliyor ve parametreler de boş geçiliyor. Birden fazla parametre için de parametreleri teker teker yazıp bunları / karakteriyle ayırıyorsunuz.

Şimdi bir de örneklerle açıklayalım. Örnek olarak uygulamamız şunu yapsın. http://siteismi.com/sayfa/goster/hakkinda gibi bir link geldiği zaman bize hakkında sayfasını göstersin, başka bir istek geldiğinde ise o sayfayı çağırsın, ama eğer istenilen sayfa yoksa 404 sayfasını göstersin.

Öncelikle controllers klasörü içerisine Sayfa adında bir Controller oluşturuyoruz.

Dosya: application/controllers/Sayfalar.php

class Sayfalar extends CI_Controller {
    public function goster($sayfa = "anasayfa") {
    }
}

Controller’ımızı şimdilik böyle bırakalım. İsterseniz denemek icin goster fonksiyonunun içerisine echo $sayfa; satırını ekleyip http://siteismi.com/sayfa/goster adresine gidin. Burada ekrana anasayfa yazdırırsa çalışmış demektir. İsterseniz parametre de gönderebilirsiniz. http://siteismi.com/sayfa/goster/hakkimda gibi bir adrese giderseniz de size içerisine yazdığınız parametreyi ekrana yazdıracaktır.

Yapmak istediğimiz örnek için ilk adımlarımızı atmış bulunuyoruz. Şimdi şöyle bir şey yapalım, views klasörünün içerisine birkaç tane dosya oluşturalım. Örnek olarak; anasayfa.php, hakkimda.php, iletisim.php ve son olarak 404.php

Kodlarımızın çalıştığından emin olmak için bu sayfaların içerisine h1 içerisinde başlıklar yazabilirsiniz. Şimdi bu goster fonksiyonumuzu güncelleyelim ve şöyle yapalım.

public function goster($sayfa = "anasayfa") {
    if(file_exists(APPPATH."views/".$sayfa.".php")) {
        $this->load->view(APPATH."views/".$sayfa.".php");
    }else {
        $this->load->view(APPATH."views/404.php");
    }
}

Kodlarımız aslında son derece açık ve net ama biz yine de ufak bir açıklama yapalım. Öncelikle ufak bir kontrol yaptık ve koşulumuzda dedik ki eğer parametre ile gelen değer views klasörü içerisinde var ise onu bize göster. Eğer yok ise 404 sayfamızı bize göster. Burada sayfa çağırmak için CodeIgniter’ın kendi içerisindeki load methodunu kullandık. $this->load->view() derken burada bir sayfayı include ediyoruz aslında. Neden load->view() şeklinde kullandığımızı merak edebilirsiniz, neden direkt load olarak kullanmıyoruz diye. Load ile sadece views içerisindeki sayfaları çağırmıyoruz. Ayrıca bunlarla veritabanı için kullanacağımız modelleri falan da çağırabiliyoruz.

Burada dikkatinizi çeken bir diğer şey de APPPATH olabilir. Bu APPPATH de CodeIgniter tarafından bize sağlanan bize application klasörümüzün yolunu veren bir sabit.

Evet bu ders anlatacaklarım bu kadar. Bu dersimizde ufak bir şablon sistemi yapmış olduk.

Yorum yazarak, videoları beğenerek ve Youtube Kanalıma abone olarak bana çok büyük moral vermiş oluyorsunuz. Lütfen beni desteklemeye devam edin ki hem sizlerle bilgilerimi paylaşayım, hem de kendimi daha çok geliştirebileyim. Söyleyeceklerim bu kadar, görüşmek üzere, herkese iyi çalışmalar.

CodeIgniter 101, Eğitim Setleri Mustafa Zahid Efe Yorum Yapılmamış