Mọi request Laravel đi vào qua một front controller duy nhất, public/index.php, được HTTP Kernel điều khiển qua chồng và tới một , rồi trả về một — sau đó middleware chạy.
Mọi request Laravel đi vào qua một front controller duy nhất, public/index.php, được HTTP Kernel điều khiển qua chồng và tới một , rồi trả về một — sau đó middleware chạy.
Responsepublic/index.php ── autoload + bootstrap app
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── khớp route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (hoặc closure) ── logic của bạn → trả Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (vd lưu session, logging)
index.php nạp Composer autoload và bootstrap container ứng dụng.Request và chạy các bootstrapper: nạp env + config, register và boot các service provider (đây là nơi framework và các binding của bạn được lắp ráp).auth, throttle, verified) chạy trước controller; mỗi cái có thể chặn sớm.Response (view, JSON, redirect). Phần logic "sau" của middleware chạy khi response nổi ngược ra.Kernel::terminate chạy terminable middleware cho các việc hoãn lại.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // chuyển tới lớp kế / controller
$response->headers->set('X-Time', '...'); // logic "sau"
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));
}
Vòng đời của Laravel xây quanh service container và middleware pipeline, nên biết thứ tự — bootstrap/providers, rồi global middleware, rồi routing, rồi route middleware, rồi controller, rồi terminate — cho bạn biết chính xác auth, giới hạn tần suất, CORS, và dọn dẹp thuộc về đâu. Nó giải thích vì sao một service phải được bind trong một provider trước khi được inject, vì sao throttle từ chối request trước cả khi controller chạy, và cách hoãn việc chậm sang terminable middleware để người dùng không phải chờ.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ