Laravel'de Routing (Rota) İşlemleri

tarafından
426
Laravel'de Routing (Rota) İşlemleri
Güzel Hosting

Bu yazılımızda Laravel Framework’te Routes işlemlerinde bahsedeceğim, diğer frameworklerde bu yapı halen çözülebilmiş değilken laravel’in route işlemleri çok gelişmiştir. Laravel öğrenen kişilerin ilk öğrenmesi gereken kısımlarındandır. Gelin route işlemlerine göz atalım. Laravel 5.2’de routes.php dosyası app/Http klasörünün altında bulunmaktadır.
İlk açıldığında bizi default olarak gelen welcome route karşılayacaktır.

En Basit Route Yapıları;

Route::get(‘/’, function () {
return ‘Laravel Ana Sayfa!’;
});
Route::get(‘blog’, function(){
return ‘Blog Sayfası’;
});

Rota Yapıları Alt Kısımdaki Gibidir.

Route::get($uri, $callback); // Get Talepleri İçin Kullanılır.
Route::post($uri, $callback); // Post Talepleri İçin Kullanılır.
Route::put($uri, $callback); // Put Talepleri İçin Kullanılır.
Route::patch($uri, $callback); // Patch Talepleri İçin Kullanılır.
Route::delete($uri, $callback); // Delete Talepleri İçin Kullanılır.
Route::options($uri, $callback); // Options Talepleri İçin Kullanılır.
Route::any($uri, $callback); // Tüm Talepler İçin Kullanılır.
Route::match(['get', 'post'], '/', function () {
    //Hem get hem'de post talepleri için kullanılır. Dizi içerisinde array tanımlayarak artırabiliriz.
});

Closure Yapıları

Genel Söz Dizimi Yapıları

Route::[HTTP]([URL], [FUNCTION]);

HTTP daha önce yukarıda da bahsi geçen GET, PUT, DELETE, ANY, POST Methodlarıdır.  URL ise gidilecek olan sayfadır. FUNCTION ise bu rota’ya erişim yapıldığında ise çalışmasını istediğiniz fonksiyondur.

Parametre Geçirme

Bu işlemde read,update,delete gibi işlemler için belirli bir parametre geçirmemiz gerekli bu parametre geçirme işlemlerini anlatacağım.

Route::get(‘urunler/{id}/{isim}’,function($id,$isim){
return “ID : “.$id.” İsim :”.$isim;
}

Üst kısımdaki kod ‘da zorunlu olarak parametre geçirilmesi gerekmektedir. Bunu çözümü için alt kısımdaki kodu kullanabilirsiniz. Alt kısımdaki kod ‘da parametreler boş gelmesi durumunda null değer çevirecektir. Bu kısma istediğinizi çevirebilirsiniz.

Route::get('urunler/{id?}/{isim?}',function($id=null,$isim=null){
return "ID : ".$id." İsim :".$isim;
}

Route İsim Atama

Bu işlemde ise aynı sql sorgularında yapmış olduğumuz route bir isim atama işlemini yapacağız, bu bize view işlemlerinde {{route(‘route.ismi’)}} şeklinde atama yapabilme olanağının yanında bir çok işlem seçeneği sunmaktadır.

Route::get('kullanicilar', ['as' => 'kullanicilar', function () {
    return "kullanicilar";
}]);

Route Controller’e Atama

Bu işlemde gelen talebi direk olarak controller yapısına aktararak MVC Sisteminin çalışmasına olanak tanıyoruz.

Route::get('kullanicilar', [
    'as' => 'kullanicilar', 'uses' => '[email protected]'
]);
Aynı kodun farklı bir yazılım şekli
Route::get('kullanicilar', '[email protected]')->name('kullanicilar');

Bu Kod işleminde KullanicilarController’in ProfilGoruntule methodunu çalıştır demektedir.

Route Group İşlemleri

 
Bu işlemde öncelikli bakmamız gereken namespace(isim uzayı) olacaktır. Bunu anlatmanın en temel kavramı masa üstünüzde iki adet test.txt oluşturmak istemeniz ve bunu nasıl yapacağınızı düşünmekten gelecektir. Bu işlemi tabiki iki ayrı klasör oluşturur ve ikisine ayri isimler vererek iki test.txt’yi içlerine açabiliriz. Örneği /Admin/test.txt olsun diğeride /Kullanici/test.txt olsun buradaki Admin ve Kullanici dizileri isim uzayı gibi görebiliriz.
Sorumuz şu olsun Admin ve Kullanicilarimiz var ve ikisi için ayrı kategoriler var bunun için iki ayrı kategoriler controller’i oluşturmamız gerekiyor bunun için ayrı klasörlerde controllerimizi oluşturduk peki buna nasıl bağlanacağız bunu öğreneceğiz.

Route::group([‘namespace’ => ‘Admin’],function(){
// Burda controller klasörünün altında yer alan Admin Klasörünün içerisindeki controlleri kullanabiliriz.
Route::get(‘/admin/kategoriler’,[‘as’ => ‘admin.kategoriler’,’uses’ => ‘[email protected]’]);
});

Middleware kullanımı burada öğrenmemiz gereken kavram middleware’dir. Bu kavram aslında açıklamak gerekirse bir ara katmandır. Şu şekilde de açıklayabiliriz. Biz bir sayfaya ulaşmak istiyoruz. Fakat biz bu sayfaya sadece giriş yapan kullanıcıların ulaşması gerekiyor işte middleware tam olarak burada devreye giriyor ve bize kontrol imkanı sunuyor. Alt kısında laravel’in auth middleware kullanarak kullanıcıların erişebilecekleri rotaları belirledik.

Route::group([‘middleware’ => ‘auth’],function(){
// Burada auth katmanını geçerek gelen kullanıcıların giriş yapabileceği rotalar belirtilmiştir.
    Route::get('/', function ()    {
        // Giriş yapan kullanıcı ana sayfa
    });
    Route::get('profil', function () {
        // Giriş yapan kullanıcı profil sayfası
    });
});

Route Resource İşlemleri

Resource işlemleri kullanıcılara sunulan kolaylıklardan bir tanesidir. Controller oluştururken php artisan make:controller ControllerName –resource kodu ile terminalden oluşturduğumuz controllere laravel bizim yerimize tüm methodları eklemektedir. bu methodlara erişebilmek için route işlemlerini tek tek yapmak hepimiz için bir işkence olacaktır, bundan dolayı laravel geliştiriciler bunun için bir route gelirtirerek bizlere sunmuştur.

Route::resource(‘urunler’,’Urunler’);
//İlk Parametre gelen talep ikinci parametre controller ismi
// Bunu Şu şekilde Yazarsa
Route::group([‘namespace’ => ‘Admin’],function(){
Route::resource(‘urunler’,’Urunler’);
//Admin/Urunler Controllerini çalıştıracaktır.
});

Route işlemlerinde bir çoğunu sizlere anlatmak istedim bir hatam var ise bildirirseniz düzeltmek isterim. Laravel ile ilgili artık makaleler yazmaya önem göstereceğim.
Daha ayrıntılı bilgilere laravel dökümantasyon’dan ulaşabilirsiniz.
Hepinize iyi çalışmalar dilerim.