ہر Laravel request ایک واحد front controller، public/index.php کے ذریعے داخل ہوتی ہے، HTTP Kernel کے ذریعے ایک اسٹیک اور سے ہوتی ہوئی ایک تک چلائی جاتی ہے، اور ایک لوٹاتی ہے — جس کے بعد middleware چلتا ہے۔
ہر Laravel request ایک واحد front controller، public/index.php کے ذریعے داخل ہوتی ہے، HTTP Kernel کے ذریعے ایک اسٹیک اور سے ہوتی ہوئی ایک تک چلائی جاتی ہے، اور ایک لوٹاتی ہے — جس کے بعد middleware چلتا ہے۔
Responsepublic/index.php ── autoload + app کو bootstrap کریں
▼
HTTP Kernel::handle($request)
▼
Bootstrappers ── env, config, providers (register + boot)
▼
Global middleware ── (TrustProxies, HandleCors, ...)
▼
Router dispatch ── route میچ کریں
▼
Route / group middleware ── (auth, throttle, verified, ...)
▼
Controller (یا closure) ── آپ کی logic → ایک Response لوٹاتا ہے
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (مثلاً session محفوظ کرنا, logging)
index.php Composer autoload لوڈ کرتا ہے اور application container کو bootstrap کرتا ہے۔Request وصول کرتا ہے اور bootstrappers چلاتا ہے: env + config لوڈ کریں، service providers کو register اور boot کریں (یہیں پر framework اور آپ کی bindings جُڑتی ہیں)۔auth، throttle، verified) controller سے پہلے چلتا ہے؛ ہر ایک short-circuit کر سکتا ہے۔Response (view، JSON، redirect) لوٹاتا ہے۔ جب response واپس باہر ابھرتی ہے تو middleware کی "after" logic چلتی ہے۔Kernel::terminate مؤخر کیے گئے کام کے لیے terminable middleware چلاتا ہے۔// app/Http/Middleware/Timing.php → 3/5. middleware
public function handle($request, Closure $next)
{
$request->attributes->set('started', microtime(true));
$response = $next($request); // اگلی layer / controller کو منتقل کریں
$response->headers->set('X-Time', '...'); // "after" logic
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));
}
Laravel کا lifecycle service container اور middleware pipeline کے گرد بنایا گیا ہے، اس لیے ترتیب کو جاننا — bootstrap/providers، پھر global middleware، پھر routing، پھر route middleware، پھر controller، پھر terminate — آپ کو بالکل بتاتا ہے کہ auth، rate limiting، CORS، اور cleanup کہاں تعلق رکھتے ہیں۔ یہ وضاحت کرتا ہے کہ ایک service کو inject کیے جانے سے پہلے ایک provider میں bind کیوں ہونا چاہیے، throttle آپ کے controller کے چلنے سے پہلے ایک request کو کیوں مسترد کرتا ہے، اور سست کام کو terminable middleware میں کیسے مؤخر کیا جائے تاکہ صارف کو انتظار نہ کرنا پڑے۔
تفصیلی جوابات کے ساتھ IT انٹرویو سوالات کی ایک لائبریری — جونیئر سے سینئر تک۔
عطیہ دیں