Ogni request Laravel entra attraverso un unico front controller, public/index.php, viene guidata dall'HTTP Kernel attraverso uno stack di e il fino a un , e restituisce un — dopodiché viene eseguito il middleware .
Ogni request Laravel entra attraverso un unico front controller, public/index.php, viene guidata dall'HTTP Kernel attraverso uno stack di e il fino a un , e restituisce un — dopodiché viene eseguito il middleware .
Responsepublic/index.php ── autoload + bootstrap dell'app
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── abbina route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (o closure) ── la tua logica → restituisce un Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (es. salvataggio session, logging)
index.php carica l'autoload di Composer e fa il bootstrap del container dell'applicazione.Request ed esegue i bootstrapper: carica env + config, registra e fa il boot dei service provider (è qui che il framework e i tuoi binding vengono collegati).auth, throttle, verified) viene eseguito prima del controller; ognuno può interrompere il flusso.Response (view, JSON, redirect). La logica "dopo" del middleware viene eseguita mentre la response risale verso l'esterno.Kernel::terminate esegue il terminable middleware per il lavoro differito.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // passa al layer successivo / controller
$response->headers->set('X-Time', '...'); // logica "dopo"
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));
}
Il lifecycle di Laravel è costruito attorno al service container e alla middleware pipeline, quindi conoscere l'ordine — bootstrap/provider, poi global middleware, poi routing, poi route middleware, poi controller, poi terminate — ti dice esattamente dove appartengono auth, rate limiting, CORS e cleanup. Spiega perché un service deve essere associato in un provider prima di essere iniettato, perché throttle rifiuta una request prima che giri il tuo controller, e come differire il lavoro lento al terminable middleware in modo che l'utente non venga fatto aspettare.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona