Laravel Request Lifecycle

Laravel Request Lifecycle adalah urutan proses yang dilalui oleh sebuah request (HTTP request) dari saat diterima oleh server hingga respons dikirimkan kembali ke browser pengguna.

Beberapa poin ini memberikan gambaran umum bagaimana Laravel memproses request dan mengembalikan respons.

1. Entry Point: public/index.php

Semua request ke aplikasi Laravel diarahkan ke file public/index.php oleh konfigurasi server web (seperti Apache atau Nginx). File ini berfungsi sebagai titik awal untuk memuat bagian framework lainnya:

2. HTTP/Console Kernels

Request kemudian dikirim ke HTTP Kernel (handleRequest) atau Console Kernel (handleCommand), tergantung jenis interaksinya. HTTP untuk web, console untuk console/terminal. Kernel mendefinisikan array bootstrappers yang berjalan sebelum request dieksekusi, seperti mengonfigurasi penanganan kesalahan, logging, dan deteksi lingkungan.

3. Service Providers

Langkah bootstrapping kernel yang paling krusial adalah memuat Service Providers. Mereka bertanggung jawab untuk menginisialisasi semua komponen utama framework seperti database, antrean (queue), validasi, dan routing.

Global Middleware

Setelah service provider dimuat, sebelum masuk ke routing, global middleware dieksekusi.

4. Routing

Setelah aplikasi di-bootstrap dan provider terdaftar, objek Request diserahkan ke Router untuk di-dispatch. Router mengarahkan permintaan ke rute atau controller yang sesuai.

Middleware

Middleware khusus untuk kelompok route, atau untuk route dan controller tertentu hanya dijalankan apabila mencocoki aturan routing yang berlaku.

5. Finishing Up - Kembali ke Entry Point (public/index.php)

Route dan controller melakukan eksekusi fungsi tertentu sesuai yang sudah diprogram.

Setelah rute atau controller mengeluarkan respons, respons tersebut akan menempuh jalan keluar kembali melalui rantai middleware yang sama, memberi kesempatan aplikasi untuk memodifikasi respons keluar.

Jalan balik lewat Middleware

Perjalanan balik dari route/controller kembali ke entry point index.php untuk keluar memberikan respons kepada user. Perjalanan ini ditempuh dengan melalui tumpukan middleware yang sebelumnya telah dilalui.

Setelah respons keluar dari semua middleware, metode handle() pada HTTP Kernel mengembalikan objek respons ke index.php, yang kemudian memanggil metode send(). Metode ini mengirimkan konten respons langsung ke browser pengguna.

Entry Point = Exit Point

File public/index.php adalah satu-satunya titik masuk.
Setelah request selesai diproses, respons di-return oleh public/index.php juga.

  • Entry Point: index.php memicu Kernel.
    → (melalui middleware)
  • Pivot Point: Controller/Routing mengeksekusi request.
    → (melalui middleware)
  • Exit Point: index.php menembakkan hasil akhirnya ke dunia luar.