Route İşlemi nedir?
Codeigniter framework ile url yönlendirme işlemlerimiz için route işlemini kullanırız. Codeigniter ile varsayılan olarak url yapısı "example.com/class/function/id/" bu şekildedir. Route işlemi ile bu url yapısını kendimize göre düzenleyebiliriz.
Kullanımı
Rota işlemlerimizi yapmak için "routes.php" adlı dosyayı kullanıyoruz. Bu dosyayı codeigniter projemiz içerisindeki "application/config/" klasörü içerisinden bulabilirsiniz. Burdan hata sayfası ve anasayfanın hangi controller ve metod üzerinden çalışacağınıda yazabiliriz.
$route['default_controller'] = 'home/index'; // Anasayfa için home controller içerisindeki index metodunu çağır
$route['404_override'] = 'home/deneme'; // Eğer 404 hatası verirse home controller içerisindeki deneme metodunu çağır
Şimdi bizde bir tane route yazalım .
$route['giris'] = "uyelik/giris"; // siteniz.com/giris şeklinde girilince uyelik controlleri içerisindeki giris metodunu çağıracak
Parametreli kullanım
Route işlemlerimizi yapmak için kullanabileceğimiz 2 tane yöntemimiz var.
1.Wildcards yöntemi
Bu yöntem için 2 tane kullanım şekli var.
(:num) => Sadece sayı yazılabiilr.
(:any) => Herhangi bir değer gelebilir.
$route['uye/(:any)/(:num)'] = "home/uye/$1/$2"; // siteniz.com/uye/deneme/1 url'si home controller içerisindeki uye metodunu çağırır ve değerleri parametre olarak gönderir. ($1 (:any) yazan yeri, $2 yazan yer (:num) yazan yeri temsil eder ve parametre olarak gönderilir.)
Home controllerimizin içerisine aşağıdaki gibi bir metod oluşturup parametrelerimize ulaşabiliriz.
public function uye($kadi,$id)
{
echo "Kullanıcı adı : ".$kadi."<br>";
echo "Id değeri : ".$id;
}
2.Regular Expressions
Yukarıdaki yöntem yerine regex ile istediğimiz şekilde route yazabiliriz.
$route['uye/([a-z]+)/(\d+)'] = 'home/uye/$1/$2';
Fonksiyon kullanımı
Controller içerisinden metodu çağırmak yerine direk eşit olduğu değere fonksiyonumuzu yazabiliriz.
// siteniz.com/uye/deneme/1
$route['uye/([a-z]+)/(\d+)'] = function($kadi,$id){
echo "Kullanıcı adı : ".$kadi."<br>";
echo "Id değeri : ".$id;
exit;
};
Yorum yapmak için lütfen giriş yapın veya üye olun