Każde żądanie w Laravel wchodzi przez jeden front controller, public/index.php, jest sterowane przez HTTP Kernel przez stos middleware i do , i zwraca — po czym uruchamia się middleware .
Każde żądanie w Laravel wchodzi przez jeden front controller, public/index.php, jest sterowane przez HTTP Kernel przez stos middleware i do , i zwraca — po czym uruchamia się middleware .
Responsepublic/index.php ── autoload + bootstrap aplikacji
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── dopasuj route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (or closure) ── Twoja logika → zwraca Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (np. zapis sesji, logging)
index.php ładuje autoload Composera i bootstrapuje kontener aplikacji.Request i uruchamia bootstrappery: ładuje env + config, rejestruje i bootuje service providery (to tutaj framework i Twoje bindingi są spinane).auth, throttle, verified) uruchamia się przed kontrolerem; każdy może przerwać łańcuch.Response (widok, JSON, przekierowanie). Logika "after" middleware uruchamia się, gdy odpowiedź wraca na zewnątrz.Kernel::terminate uruchamia terminable middleware dla odroczonej pracy.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // przekaż do następnej warstwy / controllera
$response->headers->set('X-Time', '...'); // logika "after"
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));
}
Cykl życia Laravel jest zbudowany wokół service container i potoku middleware, więc znajomość kolejności — bootstrap/providery, potem global middleware, potem routing, potem route middleware, potem controller, potem terminate — mówi Ci dokładnie, gdzie należą auth, ograniczanie liczby żądań, CORS i sprzątanie. Wyjaśnia, dlaczego serwis musi być zbindowany w providerze, zanim zostanie wstrzyknięty, dlaczego throttle odrzuca żądanie przed uruchomieniem Twojego kontrolera, i jak odroczyć wolną pracę do terminable middleware, aby użytkownik nie musiał czekać.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj