Middleware
Middleware bertindak sebagai jembatan yang memfilter HTTP Request yang masuk ke aplikasi Anda sebelum mencapai Controller. Salah satu penggunaan paling umum dari Middleware adalah untuk memverifikasi apakah pengguna telah melakukan autentikasi (login).
1. Membuat Middleware
Anda dapat dengan mudah membuat middleware baru menggunakan perintah CLI lamda. Buka terminal Anda dan jalankan:
php lamda make:middleware AuthMiddleware
Perintah ini akan membuat sebuah file baru bernama AuthMiddleware.php di dalam direktori app/Middleware/.
2. Struktur Middleware
Setiap kelas middleware di LamdaPHP harus mengimplementasikan metode handle(). Di dalam metode inilah Anda menaruh logika penyaringan (filter) Anda.
<?php namespace App\Middleware; use Lamda\Core\Http\Request; use Lamda\Core\Http\Response; class AuthMiddleware { /** * Menangani request yang masuk. */ public function handle(Request $request, callable $next) { // Contoh: Cek apakah session 'user_id' tidak ada if (!isset($_SESSION['user_id'])) { // Jika tidak ada, kembalikan response redirect ke halaman login return Response::redirect('/login'); } // Jika lolos pengecekan, teruskan request ke rute/controller tujuan return $next($request); } }
3. Mendaftarkan Middleware pada Rute
Setelah middleware dibuat, Anda harus mendaftarkannya pada rute (route) yang ingin dilindungi. Anda dapat melakukannya di file routes/web.php.
<?php use Lamda\Core\Support\Facades\Route; use App\Controllers\DashboardController; use App\Middleware\AuthMiddleware; // Rute yang bisa diakses publik (tanpa middleware) Route::get('/login', [AuthController::class, 'index']); // Menerapkan middleware pada rute spesifik Route::get('/dashboard', [DashboardController::class, 'index']) ->middleware(AuthMiddleware::class);
Tips: Anda bisa merantai (chaining) beberapa middleware sekaligus jika rute tersebut membutuhkan lebih dari satu filter (misalnya: cek login & cek hak akses admin).