Header Ads

Header ADS

Laravel Request Lifecycle: সম্পূর্ণ প্রক্রিয়া

 

Laravel Request Lifecycle: সম্পূর্ণ প্রক্রিয়া ব্যাখ্যা

Laravel Request Lifecycle হলো একটি HTTP রিকুয়েস্ট Laravel অ্যাপ্লিকেশনে প্রবেশ করা থেকে রেস্পন্স পাওয়া পর্যন্ত সম্পূর্ণ প্রক্রিয়া। এটি Laravel-এর সবচেয়ে গুরুত্বপূর্ণ কনসেপ্টগুলির মধ্যে একটি।

Lifecycle-এর মূল ধাপসমূহ:-



ধাপে ধাপে বিস্তারিত ব্যাখ্যা

১. রিকুয়েস্ট রিসিভ (public/index.php)

  • সব রিকুয়েস্ট প্রথমে public/index.php ফাইলে প্রবেশ করে

  • অটোলোডার সেটআপ করে এবং Laravel অ্যাপ্লিকেশন বুটস্ট্র্যাপ শুরু করে

php
Copy
Download
// public/index.php
$app = require_once __DIR__.'/../bootstrap/app.php';

২. কার্নেল ইনিশিয়ালাইজেশন

  • HTTP কার্নেল বা কনসোল কার্নেল ইনস্ট্যান্ট হয়

  • সার্ভিস প্রোভাইডার রেজিস্ট্রেশন এবং বুটিং হয়

php
Copy
Download
// bootstrap/app.php
$app->singleton(
    Illuminate\Contracts\Http\Kernel::class,
    App\Http\Kernel::class
);

৩. সার্ভিস প্রোভাইডার প্রক্রিয়া

  • config/app.php-এ রেজিস্টার্ড সকল প্রোভাইডারের register() মেথড কল হয়

  • এরপর সকল প্রোভাইডারের boot() মেথড কল হয়

৪. রাউটিং

  • রিকুয়েস্টকে উপযুক্ত রাউটে ডিসপ্যাচ করা হয়

  • রাউট প্যারামিটার রেজলভ করা হয়

php
Copy
Download
// app/Http/Kernel.php
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        // ...
    ],
];

৫. কন্ট্রোলার/ক্লোজার এক্সিকিউশন

  • রাউট ম্যাচ হওয়ার পর সংশ্লিষ্ট কন্ট্রোলার মেথড বা ক্লোজার কল হয়

  • মডেল থেকে ডেটা ফেচ করা, ভ্যালিডেশন ইত্যাদি সম্পন্ন হয়

৬. রেস্পন্স প্রস্তুতকরণ

  • কন্ট্রোলার থেকে রিটার্ন করা ভ্যালু রেস্পন্সে কনভার্ট হয়

  • ভিউ রেন্ডারিং বা JSON রেস্পন্স জেনারেট করা হয়

৭. রেস্পন্স সেন্ড

  • ফাইনাল রেস্পন্স ক্লায়েন্টের কাছে পাঠানো হয়

  • মেমোরি ক্লিনআপ এবং সেশন ক্লোজ করা হয়

Lifecycle-এর গুরুত্বপূর্ণ কম্পোনেন্টস

  1. HTTP Kernelapp/Http/Kernel.php

  2. Service Providersapp/Providers/

  3. Routerroutes/web.php/api.php

  4. Middleware: রিকুয়েস্ট/রেস্পন্স মডিফাই করে

বাস্তব উদাহরণ

যখন আপনি https://example.com/users এ রিকুয়েস্ট করেন:

  1. রিকুয়েস্ট public/index.php-এ যায়

  2. কার্নেল ইনিশিয়ালাইজ হয়

  3. ডাটাবেস, ভ্যালিডেশন প্রোভাইডার লোড হয়

  4. রাউট চেক করে দেখে Route::get('/users', [UserController::class, 'index']);

  5. UserController@index মেথড কল হয়

  6. ডাটাবেস থেকে ইউজার লিস্ট ফেচ করে

  7. ভিউ রেন্ডার করে বা JSON রিটার্ন করে

  8. ব্রাউজারে রেস্পন্স দেখায়

Performance Optimization টিপস

  1. ডিফার্ড প্রোভাইডার ব্যবহার করুন (শুধু প্রয়োজনীয় প্রোভাইডার লোড হবে)

  2. রাউট ক্যাশিং ব্যবহার করুন (php artisan route:cache)

  3. কনফিগ ক্যাশিং ব্যবহার করুন (php artisan config:cache)

  4. অপ্রয়োজনীয় মিডলওয়্যার এড়িয়ে চলুন

No comments

Theme images by fpm. Powered by Blogger.