Belajar Laravel 8 mengenal Konsep Routing Laravel 8

Belajar Laravel 8 mengenal Konsep Routing Laravel 8

Pada kesempatan kali ini kita akan belajar mengenai kosep routing pada laravel 8. Belajar laravel 8 mengenal konsep routing laravel 8 merupakan tahapan awal ketika kalian mulai mempelajar framework laravel ini. Konsep routing laravel bertujuan untuk menghubungkan antara view dengan controller. Ada beberapa point pembahasan yang akan dibahas pada artikel kali ini mengenai konsep routing laravel 8, silahkan kalian simak pembahasannya dibawah ini:

  1. Basic Routing
  2. Route Parameters
  3. Named Routes
  4. Route Groups

Diatas merupakan point-point pembahasan yang akan admin bahas pada artikel kali ini, kelima konsep route tersebut tentunya banyak dipakai atau digunakan oleh para pengembang aplikasi yang menggunakan framework laravel. Sebenarna masih ada jenis routing lainnnya tetapi banyak aturan yang harus kita perhatikan. Kita akan belajar mengenai konsep routing yang sederhana dan sering digunakan oleh pengembang aplikasi frawork laravel. Silahkan kalaian simak pembahasannya dibawah ini:

1. Basic Routing Mengenal Konsep Routing Laravel 8

Route laravel yang paling dasar tentunya dapat menerima URI dan juga closure, tentunya menyediakan metode yang sangat sederhana dan juga ekspresif untuk dapat menentukan suatu router dan juga perilaku tampa file perutean yang rumit tentunya, untuk contoh penerapan dari basic routing ini silahkan kalian simak script dibawah ini:

use Illuminate\Support\Facades\Route;

Route::get('/welcome', function () {
    return 'Hello World';
});

Jika kita perhatikan pada script diatas tentunya untuk dapat menampilkan kata ‘Hello World’ kita terlebih dahulu harus mengakses route /welcome pada URL web browser. selanjutnya ada beberapa penerapan lainnya yang merupakan bagian dari router basic silahkan simak penjelasan dibawah ini:

#File Route Detault

Semua route pada framework laravel ditentukan dalam file route yang tentunya terletak pada directory route. File route tersebut secara otomatis dimuat oleh App\Providers\RouteServiceProvider pada aplikasi atau project yang kalian buat. File router atau file web.php digunakan untuk menentukan route untuk antar muka dari website yang kalina buat. Route tersebut diterapkan pada grup middleware web, yang tentunya menyediakan fitur seperti status sesi dan perlidungan dengan menggunakan CSRF. Rute yang terdapat pada file api.php merupakan stateless dan diterapkan kedalam grup middleware api.

Untuk sebagian besar dari aplikasi yang dibuat, Kalian akan memulai dengan menentukan route pada file router/web.php. Route yang ditentukan pada file tersebut dapat diakses dengan memasukan URL route kedalam web browser. Misalnya kalain dapat mengakses route berikut 127.0.0.1/welcome.

use App\Http\Controllers\WelcomeController;

Route::get('/welcome', [WelcomeController::class, 'index']);

Route yang ditentukan dalam file routes/ api.php tentuna disarangkan dalam suatu grup route oleh file RouterServiceProvider. Dalam grup ini, awalan URI/ api diterapkan secara otomatis sehingga kalian tidak perlu menerapkan secara manual ke dalam setiap route dalam file. Kalia dapat mengubah dari awalan dan juga opsi group route lainnya degan cara mengubah kelas RouteServiceProvider.

#Metode Route yang tersedia

Pada router tentunya memungkinkan kalian untuk mendaftarkan route yang tentunya dapat memberikan respon kata kerja HTTP apapun, contoh seperti berikut ini:

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

Terkadang kalian juga perlu untuk mendaftarkan route yang merespon beberapa kata kerja HTTP, kalian juga dapat melakukannya dengan menggunakan metode pencocokan. ataupun kalian dapat mendaftarkan route yang merespon semua kara kerja HTTP menggunakan cara atau metode apapun contohnya seperti berikut:

Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('/', function () {
    //
});

#Dependency Injection

Kalian tentunya diperbolehkan untuk memberi petunjuk yang diperlukan oleh route yang kalian buat pada route callback. Dependensi yang dideklarasikan tentunya akan secara otomatis diselesaikan dan dimasukan kedalam callback oleh kontainer dari layanan laravel. Misalnya kalian dapat mengetikan petunjuk kelas Illuminate\ Http\ Request agar permintaan suatu HTTP secara otomatis dimasukan kedalam callback route kalian, contoh penerapannya seperti berikut:

use Illuminate\Http\Request;

Route::get('/welcome', function (Request $request) {
    // ...
});

#Perlindungan CSRF

Kalian harus mengingat bahwa segala bentuk HTML yang merujuk kepada route POST, PATCH, PUT ataupun DELETE yang ditentukan pada file route harus menyertakan token CSRF, Jika kalian tidak menyertakannya maka akan ditolak, untuk pengerapan CSRF ini tentunya pada bagian HTML contohnya seperti berikut ini:

<form method="POST" action="/user">
    @csrf
    ...
</form>

Selanjutnya kita akan mempelajari mengenai penerapan dari route paramenters, silahkan kalian simak pembahasan dibawah ini.

2. Route Parameters

Pada router parameters tentunya terdapat beberapa sub pembahasan yaitu mengenai Required Parameters, Optional Parameters dan juga Reqular expression constaints. Oke silahkan teman-teman simak pembahasannya.

#Required Parameters

Terkadang kalian harus menangkap segmen URL dana route yang kalian buat, Misalnya, kalian memungkinka mengambil ID pengguna dari URL. Kalian dapat melakukannya dengan menentukan parameter dari router tersebut seperti berikut:

Route::get('/profile/{id}', function ($id) {
    return 'Profile '.$id;
});

Kalian juga dapat menentukan parameter route sebanyak banyaknya yang diperlukan oleh route yang kalian buat, contohnya:

Route::get('/articles/{article}/comments/{comment}', function ($articleId, $commentId) {
    //
});

Jika kalain perhatikan script diatas maka akan terlihat bahwa parameter route selalu terbungkus oleh {} tanda kurung dan harus terdiri dari karakter yang berjenis alfabet. Garis bawah (_) tentunya dapat kita gunakan dalam penamaan parameter route. Parameter ruote dimasukan kedalam callback/ atau suatu pengontrollan route berdasarkan urutan nama argumen dari callback pengontrollan route tidak menjadi suatu permasalahan.

Parameter dan Dependency injection

Jika route yang kalain buat memiliki dependensi yang kalian inginkan agar suatu kontainer layanan framewrok laravel secara otomatis dimasukan kedalam callback route yang sudah kalian buat, kalian tentunya harus mencantumkan parameter route setelah dependensi kalian, contoh penerapannya seperti berikut:

use Illuminate\Http\Request;

Route::get('/post/{id}', function (Request $request, $id) {
    return 'Post'.$id;
});

selanjutnya kita akan belajar mengenai penerapan Optional Paramenters, silahkan teman-teman simak penjelasan dibawah ini:

#Optional Parameters

Terkadang kalian harus menentukan parameter route yang mungkin tidak selalu tedapat pada URI, pastikan untuk memberikan nilai default pada variabel route yang sesuai untuk penerapan dari optional parameters ini dapat dilihat pada script dibawah ini.

Route::get('/articles/{name?}', function ($name = null) {
    return $name;
});

Route::get('/articles/{name?}', function ($name = 'Rizal') {
    return $name;
});

Selanjutnya kita akan belajar mengenai Regular Expression Constaint, silahkan simak kembali pembahasan dibawah ini:

#Regular Expression Constaints

Kalian dapat memberikan batasan pada parameter route kalian dengan menggunakan metode where pada bagian instance route, Pada metode where sendiri dapat menerima nama parameter dan eksperesi regular yang dapat menentukan bagaimana parameter harus dibatasi. untuk contoh penerapannya sebagai berikut:

Route::get('/articles/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('/articles/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('/articles/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

Untuk memberikan kenyamanan, terdapat beberapa pola ekspesi reguler yang umumnya digunakan memiliki metode pembantu yang tentunya memungkinkan kalian dengan cepat menambahkan batasan pola kedala route yang kalian buat. untuk penerapanya seperti berikut:

Route::get('/articles/{id}/{title}', function ($id, $title) {
    //
})->whereNumber('id')->whereAlpha('title');

Route::get('/articles/{title}', function ($title) {
    //
})->whereAlphaNumeric('title');

Route::get('/articles/{id}', function ($id) {
    //
})->whereUuid('id');

Jika suatu permintaan yang masuk tidak cocok dengan batasan pola yang terdapat pada route, maka akan mengembalikan respon 404 not found.

Global Constraints

Jika kalian menginginkan parameter route selalu dibatasi oleh ekspresi regular tentunya, tentunya kalian dapat mengunakan metode pola, kalian harus menerapkan pola didalam metode boot kelas App/ Providers / RouteServiceProvider kalian. Contohnya seperti berikut:

public function boot()
{
    Route::pattern('id', '[0-9]+');
}

Setelah pola sudah kalian tentukan, secara otomaris diterapkan kedalam semua route menggunakan nama parameter tersebut:

Route::get('/articles/{id}', function ($id) {
    // Only executed if {id} is numeric...
});

Garis miring yang dikodekan

Pada setiap komponen peruteran laravel dapat memungkinkan semua karakter kecuali/ yang terdapat dalam nilai parameter route. Kalian harus secara eksplisit untuk mengizinkan atau menjadi bagian dari suatu placeholder dengan menggunakna ekspresi regular yang kalian dimana:

Route::get('/search/{search}', function ($search) {
    return $search;
})->where('search', '.*');

Selanjutnya kita akan belajar mengenai penerapa Named Routes, silahkan teman-teman simak penjelasan dibawah ini:

3. Named Route

Pada named route memungkinkan pembuatan URL atau suatu pengalihan untuk satu route tertentu. Kalian dapat menentukan nama untuk sebuah dengan merangkai metode nama kedalam suatu route, contohnya seperti berikut ini:

Route::get('/articles/comments', function () {
    //
})->name('conmments');

Kalian juga tentunya dapat menentukan nama route untuk suatu tindakan dalam pengontrollan, seperti berikut:

Route::get(
    '/Articles/commets',
    [ArticlesCommentController::class, 'show']
)->name('comments');

Route name harus selalu unique

#Menghasilkan URL ke Named Route

Setelah kalian selesai menerapkan nama untuk route tententu, kalian dapat juga menggunakan nama route tersebut saat membuat URL ataupun suatu pengalihan melalui route Laravel dan fungsi pembantu dari redirect:

// Generating URLs...
$url = route('comments');

// Generating Redirects...
return redirect()->route('comments');

Jika named route mendefinisikan suatu parameter, kalian dapat meneruskan parameter tersebut sebagai argument kedua dari fungsi route. Parameter yang diberikan secara otomatis akan dimasukan kedalam URL yang dihasilkan pada posisi yang benar tentunya, seperti beriktu:

Route::get('/articles/{id}/comments', function ($id) {
    //
})->name('comments');

$url = route('comments', ['id' => 1]);

Jika kalian meneruskan parameter dalam larik tersebut, secara otomartis akan ditambahkan kedalam string kuery URL yang dihasilkan, contohnya seperti berikut:

Route::get('/articles/{id}/comments', function ($id) {
    //
})->name('comments);

$url = route('articles', ['id' => 1, 'photos' => 'yes']);

Terkadang, kalian mungkin ingin menentukna nilai secara default seluruh permintaan untuk parameter URL, Untuk dapat melakukannya kalian tentunya dapat menggunakan metode URL::defaults.

Selanjutnya kita akan belajar mengenai penerapan Route Groups, silahkan teman-teman simak pembahasan dibawah ini.

4. Route Groups

Pada route groups tentunya memungkinkan kalian untuk berbagi atribut route, seperti halnya middleware, pada sejumlah besar route tampa perlu menentukan atribut tersebut pada setiap route.

Nested Groups mencoba menggabungkan atribut dengan grup induknya. Midlleware dimaan kondisinya digabungkan sementara untuk nama dan prefiksnya ditambahkan. Pembatasan ruang nama dan garis miring pada awalan URI otomatis akan ditambahkan jika sudah sesuai. yang pertama yang akan dibahas mengenai middleware.

#Middleware

Untuk dapat menerapkan middleware kesemua route dalam group, kalian dapat menggunakan metode middleware sebelum kalian menentukan grup. Pada middleware sendiri dijalankan dalam urutan seperti yang terdapat pada array:

Route::middleware(['auth', 'user'])->group(function () {
    Route::get('/', function () {

    });

    Route::get('/articles/comments', function () {

    });
});

Selanjutnya kita akan mengenal mengenai Route Prefixes, silahkan teman-teman perhatikan pembahasan dibawah ini.

#Route Prefixes

Metode ini dapat digunakan untuk mewakiili setiap route yang digunakan untuk mengawali setiap rute dalam grup dengan URI tertentu. Misalnya, kalian mungkin ingin memberi awalan semua URI route dalam suatu group dengan admin:

Route::prefix('admin')->group(function () {
    Route::get('/articles', function () {
   
 });
});

Oke, mungkin sekian yang dapat admin sampaikan mudah-mudah kan pembahasan kali ini mengenai Belajar Laravel 8 mengenal Konsep Routing Laravel 8 dapat memberikan manfaat bagi para pembaca. Terimakasih telah berkunjung dan membaca artikel ini, jangan lupa mengunjungi artikel sebelumnya mengenai .Belajar laravel 8 dasar untuk pemula #part1 Instalasi Laravel 8.

Salam Success 🙂

By: Muhammad Rizal Supriadi

Leave a Comment

Your email address will not be published. Required fields are marked *