Vsaka zahteva v Laravel vstopi skozi en sam front controller, public/index.php, jo HTTP Kernel vodi skozi sklad middleware in do , in vrne — nato steče middleware.
Vsaka zahteva v Laravel vstopi skozi en sam front controller, public/index.php, jo HTTP Kernel vodi skozi sklad middleware in do , in vrne — nato steče middleware.
Responsepublic/index.php ── autoload + bootstrap aplikacije
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── ujemi route
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (or closure) ── tvoja logika → vrne Response
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (npr. shranjevanje seje, logging)
index.php naloži Composerjev autoload in bootstrapa vsebnik aplikacije.Request in zažene bootstrapperje: naloži env + config, registrira in zažene (boot) service providerje (tu se povežeta framework in tvoji bindingi).auth, throttle, verified), teče pred controllerjem; vsak lahko prekine verigo.Response (view, JSON, preusmeritev). Logika "after" middlewara teče, ko odgovor prihaja nazaj navzven.Kernel::terminate zažene terminable middleware za odloženo delo.// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // posreduj naslednji plasti / controllerju
$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));
}
Življenjski cikel Laravel je zgrajen okoli service containerja in cevovoda middleware, zato ti poznavanje vrstnega reda — bootstrap/providerji, nato global middleware, nato routing, nato route middleware, nato controller, nato terminate — natančno pove, kam spadajo auth, omejevanje hitrosti (rate limiting), CORS in čiščenje. Pojasni, zakaj mora biti storitev povezana (bind) v providerju, preden je vbrizgana, zakaj throttle zavrne zahtevo, preden tvoj controller steče, in kako odložiti počasno delo na terminable middleware, da uporabniku ni treba čakati.
Knjižnica IT vprašanj za razgovore s podrobnimi odgovori — od začetnika do izkušenega.
Doniraj