Setiap request Laravel masuk melalui satu front controller, public/index.php, dikendalikan oleh HTTP Kernel melewati sebuah tumpukan dan menuju sebuah , lalu mengembalikan sebuah — setelah itu middleware berjalan.
Setiap request Laravel masuk melalui satu front controller, public/index.php, dikendalikan oleh HTTP Kernel melewati sebuah tumpukan dan menuju sebuah , lalu mengembalikan sebuah — setelah itu middleware berjalan.
Responsepublic/index.php ── autoload + bootstrap app
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── cocokkan route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (atau closure) ── logika Anda → mengembalikan Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (mis. simpan session, logging)
index.php memuat Composer autoload dan mem-bootstrap container aplikasi.Request dan menjalankan bootstrapper: memuat env + config, mendaftarkan dan mem-boot service provider (di sinilah framework dan binding Anda dirangkai).auth, throttle, verified) berjalan sebelum controller; masing-masing bisa memutus jalur.Response (view, JSON, redirect). Logika "sesudah" milik middleware berjalan saat response menggelembung kembali keluar.Kernel::terminate menjalankan terminable middleware untuk pekerjaan yang ditangguhkan.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // teruskan ke lapisan berikutnya / controller
$response->headers->set('X-Time', '...'); // logika "sesudah"
return $response;
}
// routes/web.php → 4. routing (+ middleware)
Route::get('/items/{id}', [ItemController::class, 'show'])->middleware('auth');
// app/Http/Controllers/ItemController.php → 6. controller
public function show(int $id)
{
return response()->json(Item::findOrFail($id));
}
Lifecycle Laravel dibangun di sekitar service container dan middleware pipeline, jadi mengetahui urutannya — bootstrap/provider, lalu global middleware, lalu routing, lalu route middleware, lalu controller, lalu terminate — memberi tahu Anda persis di mana auth, rate limiting, CORS, dan cleanup berada. Ini menjelaskan kenapa sebuah service harus di-bind di sebuah provider sebelum di-inject, kenapa throttle menolak sebuah request sebelum controller Anda berjalan, dan bagaimana menangguhkan pekerjaan lambat ke terminable middleware supaya pengguna tidak dibiarkan menunggu.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi