Route(rota) sistemini url yönlendirmek için kullanıyoruz. Özellikle seo uyumlu linkler oluşturmak istiyorsak rota sistemi gayet iyi bir yöntem. Daha önceden PHP'de bir mvc framework kullandıysanız Route (rota) işlemini ne olduğunu biliyorsunuzdur. Bugün sizlerle kendi yazığım bir Route(rota) sistemini paylaşacağım.
Rota sınıf link => https://github.com/onuryanmis/Rota-sistemi
Yukarıdaki adresten sınıfı indirebilirsiniz. Kullanımı gayet basitdir. İlk önce sınıfımızı kullanmak için sayfamıza dahil edelim.
require_once "Route.class.php";
Sonra bir tane .htaccess dosyası oluşturalım ve içerisine aşağıdaki kodları yapıştıralım.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)(/?)$ index.php/$1 [QSA,L]
Kurulum işlemi bu kadar basit . Şimdi nasıl kullanırız onu görelim.İlk olarak parametresiz kullanımını görelim ardından parametreli şekilde kullanımını görelim.
Parametresiz kullanım
Route::GET("/",function(){
echo "Burası anasayfa";
});
Route::GET("giris",function(){
echo "Burası giriş sayfası"; // site.com/giris şeklinde ulaşılıyor.
});
Route::POST("giris",function(){
echo "Burası giriş sayfası"; // Sayfa post edilmişse site.com/giris şeklinde ulaşılıyor.
});
En basit haliyle rota sistemimiz bu şekilde kullanılıyor. Dikkat edilmesi gereken nokta hangi metodla işlem yapacaksak "Route::" yazan yerden sonra o metodu kullanıyoruz.Şimdi parametreli olarak nasıl kullanabiliriz onu görelim.
Parametreli kullanım
Route::GET("uye/(\d+)/(.*?)",function($id, $kadi){
echo "Id değeri : ".$id;
echo "Kullanıcı adı değeri : ".$kadi;
});
Bu şekilde rota sistemimize parametre yollayabiliyoruz.
Parametre sayı ise => (\d+) şeklinde yazıyoruz.
Parametre normal karakter ise => (.*?) şeklinde yazıyoruz.
Rotamızın ikinci parametresine hep fonksiyon yolluyoruz eğer istersek dışarıda tanımladığımız bir fonksiyonuda kullanabiliriz.
function giris_fonksiyon()
{
echo "Burası giriş sayfası";
}
Route::GET("giris","giris_fonksiyon"); // site.com/giris şeklinde ulaşılıyor.
Bu şekilde başka bir yerde tanımladığımız fonksiyonuda çalıştırabiliriz. Bu iki yöntem haricinde oluşturduğumuz bir sınıfın içersindeki metoduda kullanabiliriz.
Route::GET("giris","uyelik@giris_yap"); // site.com/giris şeklinde ulaşılıyor.
class uyelik
{
public function giris_yap()
{
echo "Burası giriş sayfası";
}
}
(İlk class ismini yazıyoruz @ işaretini yazıp ardından classımızın içersindeki metodumuzu yazıyoruz).
Rota sistemimize uzantı ekleyebiliriz. Bu kodu rota sistemimizin en üstüne ekliyoruz.
Route::CONFIG(array(
"extension"=>"html" // site.com/rota.html şeklinde ulaşılıyor.
));
Html yazan yeri istediğiniz uzantı ile değiştirebilirsiniz. Uzantı değiştirdikten sonra rotaya "siteadresiniz.com/rota.uzanti" şeklinde ulaşabilirsiniz.
Ve son olarak rota sistemimizde bir hata varsa yani rota yoksa bu metod çalışacak. (Bu metod rota sisteminin en sonuna yazılacak)
Route::ERROR(function(){ // Rota yoksa burası çalışacak (Bu metod en son yazılacak)
echo "<h4>404 not found</h4>";
echo "<p>Aradığınız sayfa bulunamadı</p>";
});
Kolay gelsin...
Yorum yapmak için lütfen giriş yapın veya üye olun