Laravel - Middleware: Your Gateway to Request Handling
Halo sana, bakal pembangun Laravel! Hari ini, kita akan melihat dunia yang menarik Laravel Middleware. P想象 middleware sebagai penjaga keamanan yang membantu aplikasi Anda - itu memeriksa dan memproses permintaan sebelum mencapai logika aplikasi utama Anda. mari kita mulai perjalanan yang menarik ini bersama!
Apa Itu Middleware?
Sebelum kita masuk ke kode, mari kita pahami apa itu middleware. Bayangkan Anda mengadakan pesta (aplikasi Anda), dan Anda memiliki penjaga gerbang (middleware) di pintu masuk. Penjaga ini dapat:
- Memeriksa apakah orang-orang berada dalam daftar tamu (otentikasi)
- Memastikan mereka berpakaian sesuai (validasi)
- Memberikan mereka band wristband (menambahkan informasi ke permintaan)
- atau bahkan menolak mereka (mengakhiri permintaan)
Itu sebasikalnya apa yang middleware lakukan untuk aplikasi Laravel Anda!
Mendaftar Middleware
Sekarang, mari kita lihat bagaimana kita dapat membuat dan mendaftar middleware sendiri.
Membuat Middleware
Pertama-tama, kita akan membuat middleware sederhana yang memeriksa jika pengguna berusia di atas 18:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
public function handle($request, Closure $next)
{
if ($request->age <= 18) {
return redirect('home');
}
return $next($request);
}
}
Dalam contoh ini, middleware CheckAge
kita memeriksa jika parameter age
dalam permintaan lebih dari 18. Jika tidak, ia mengalihkan ke halaman utama. Jika iya, ia meneruskan permintaan ke middleware berikutnya atau ke aplikasi utama.
Mendaftar Middleware Global
Untuk menggunakan middleware ini secara global (untuk semua rute), kita harus mendaftarkannya di file app/Http/Kernel.php
:
protected $middleware = [
// ...
\App\Http\Middleware\CheckAge::class,
];
Mendaftar Middleware Rute
Jika Anda ingin menggunakan middleware hanya untuk rute tertentu, Anda dapat mendaftarkannya sebagai middleware rute:
protected $routeMiddleware = [
// ...
'checkage' => \App\Http\Middleware\CheckAge::class,
];
Kemudian, Anda dapat menggunakannya dalam rute Anda seperti ini:
Route::get('adult-only', function () {
//
})->middleware('checkage');
Parameter Middleware
kadang-kadang, kita ingin middleware kita lebih fleksibel. Itu di mana parameter middleware berguna!
Mari kita modifikasi CheckAge
middleware untuk menerima parameter usia minimum:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
public function handle($request, Closure $next, $minAge)
{
if ($request->age <= $minAge) {
return redirect('home');
}
return $next($request);
}
}
Sekarang, kita dapat menggunakan middleware ini dengan batas usia yang berbeda:
Route::get('adult-only', function () {
//
})->middleware('checkage:18');
Route::get('senior-only', function () {
//
})->middleware('checkage:65');
Apakah itu menarik? Kita telah membuat middleware yang dapat digunakan untuk berbagai situasi!
Middleware Yang Dapat Diterminate
kadang-kadang, kita ingin middleware kita melakukan sesuatu setelah tanggapan telah dikirim ke browser. Itu di mana middleware yang dapat diterminate berguna!
Mari kita buat middleware yang mencatat waktu tanggapan:
<?php
namespace App\Http\Middleware;
use Closure;
class LogResponseTime
{
public function handle($request, Closure $next)
{
$request->start_time = microtime(true);
return $next($request);
}
public function terminate($request, $response)
{
$duration = microtime(true) - $request->start_time;
\Log::info('Response time: ' . $duration . ' seconds');
}
}
Middleware ini menambahkan start_time
ke permintaan, kemudian mencatat total waktu tanggapan setelah tanggapan telah dikirim.
Untuk menggunakan middleware yang dapat diterminate, pastikan itu terdaftar di file app/Http/Kernel.php
:
protected $middleware = [
// ...
\App\Http\Middleware\LogResponseTime::class,
];
Metode Middleware
Berikut adalah tabel metode utama yang Anda akan gunakan saat bekerja dengan middleware:
Metode | Deskripsi |
---|---|
handle() |
Logik utama middleware. Memproses permintaan dan secara opsional meneruskan ke middleware berikutnya. |
terminate() |
Jalankan setelah tanggapan telah dikirim ke browser. Digunakan untuk pembersihan atau pencatatan. |
Kesimpulan
Dan di sana Anda punya nya, teman-teman! Kita telah melakukan perjalanan melalui negeri Laravel Middleware, dari membuat dan mendaftar middleware hingga menggunakan parameter dan middleware yang dapat diterminate. Ingat, middleware adalah seperti pisau Swiss Army dalam penanganan permintaan - itu multifungsi, kuat, dan alat penting dalam peralatan Laravel Anda.
Saat Anda terus mengembangkan Laravel, Anda akan menemukan banyak cara kreatif untuk menggunakan middleware. Mungkin Anda akan membuat middleware untuk memeriksa mode perawatan, mencatat permintaan, atau bahkan mengubah data permintaan. Kemungkinan adalah tak terbatas!
Terus mengoding, terus belajar, dan terutama, bersenang-senang! Sampai jumpa lagi, selamat ber-Laravel!
Credits: Image by storyset