প্রতিটি Laravel request একটি একক front controller, public/index.php-এর মধ্য দিয়ে প্রবেশ করে, HTTP Kernel দ্বারা একটি stack ও -এর মধ্য দিয়ে একটি -এ চালিত হয়, এবং একটি ফেরত দেয় — এরপর middleware চলে।
প্রতিটি Laravel request একটি একক front controller, public/index.php-এর মধ্য দিয়ে প্রবেশ করে, HTTP Kernel দ্বারা একটি stack ও -এর মধ্য দিয়ে একটি -এ চালিত হয়, এবং একটি ফেরত দেয় — এরপর 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 (or closure) ── আপনার logic → Response ফেরত দেয়
▼
Response ──▶ client
▼
Kernel::terminate ── terminable middleware (যেমন session save, logging)
index.php Composer autoload লোড করে এবং application container bootstrap করে।Request গ্রহণ করে এবং bootstrapper গুলি চালায়: env + config লোড, service provider গুলি register ও boot করে (এখানেই framework ও আপনার binding গুলি যুক্ত হয়)।auth, throttle, verified) controller-এর আগে চলে; প্রতিটি আগেভাগে থামাতে পারে।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 ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন