Jokainen Laravel-pyyntö tulee sisään yhden front controllerin, public/index.phpn, kautta, sitä ohjaa HTTP Kernel middleware-pinon ja läpi , ja se palauttaa n — minkä jälkeen -middleware ajetaan.
Jokainen Laravel-pyyntö tulee sisään yhden front controllerin, public/index.phpn, kautta, sitä ohjaa HTTP Kernel middleware-pinon ja läpi , ja se palauttaa n — minkä jälkeen -middleware ajetaan.
Responsepublic/index.php ── autoload + bootstrappaa sovelluksen
▼
HTTP Kernel::handle($request)
▼
Bootstrapperit ── env, config, providerit (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── täsmää route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (tai closure) ── logiikkasi → palauttaa Responsen
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (esim. session save, logging)
index.php lataa Composerin autoloadin ja bootstrappaa sovelluscontainerin.Requestin ja ajaa bootstrapperit: lataa env + config, rekisteröi ja boottaa service providerit (tässä framework ja sinun bindingsit kytkeytyvät).auth, throttle, verified) ajetaan ennen controlleria; kukin voi oikaista.Responsen (view, JSON, redirect). Middlewaren "after"-logiikka ajetaan responsen kupliessa takaisin ulos.Kernel::terminate ajaa terminable-middlewaren lykättyä työtä varten.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // välitä seuraavalle kerrokselle / controllerille
$response->headers->set('X-Time', '...'); // "after"-logiikka
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));
}
Laravelin elinkaari on rakennettu service containerin ja middleware-pipelinen ympärille, joten järjestyksen tunteminen — bootstrap/providerit, sitten global middleware, sitten routing, sitten route middleware, sitten controller, sitten terminate — kertoo sinulle tarkalleen minne auth, rate limiting, CORS ja siivous kuuluvat. Se selittää miksi service pitää bindata providerissa ennen kuin se injektoidaan, miksi throttle hylkää pyynnön ennen kuin controllerisi ajetaan, ja miten lykätä hidas työ terminable-middlewareen niin ettei käyttäjää pidetä odottamassa.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita