Hver Laravel-request kommer ind gennem en enkelt front controller, public/index.php, drives af HTTP-kernen gennem en -stak og til en , og returnerer et — hvorefter middleware kører.
Hver Laravel-request kommer ind gennem en enkelt front controller, public/index.php, drives af HTTP-kernen gennem en -stak og til en , og returnerer et — hvorefter middleware kører.
Responsepublic/index.php ── autoload + bootstrap af appen
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── match route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (or closure) ── din logik → returnerer et Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (f.eks. session-gem, logging)
index.php indlæser Composer autoload og bootstrapper applikationscontaineren.Request og kører bootstrapperne: indlæser env + config, registrerer og booter service providers (det er her frameworket og dine bindings kobles op).auth, throttle, verified) kører før controlleren; hver kan kortslutte.Response (view, JSON, redirect). Middlewarens "efter"-logik kører, mens svaret bobler tilbage ud.Kernel::terminate terminable middleware til udskudt arbejde.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // send til næste lag / controller
$response->headers->set('X-Time', '...'); // "efter"-logik
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));
}
Laravels livscyklus er bygget op omkring service containeren og middleware-pipelinen, så det at kende rækkefølgen — bootstrap/providers, så global middleware, så routing, så route-middleware, så controller, så terminate — fortæller dig præcist, hvor auth, rate limiting, CORS og oprydning hører hjemme. Den forklarer, hvorfor en service skal bindes i en provider, før den injiceres, hvorfor throttle afviser en request, før din controller kører, og hvordan man udskyder langsomt arbejde til terminable middleware, så brugeren ikke holdes ventende.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér