লারাভেল রিকুয়েষ্ট  লাইফসাইকেল

লারাভেল রিকুয়েষ্ট  লাইফসাইকেল



লারাভেল একটা রিকুয়েষ্টকে কিভাবে হ্যান্ডেল করে? আমরা সাধারানত যা দেখি যে web.php থেকে কোনো একটা রাউট কন্ট্রলারে যাচ্ছে এবং এর পর একটা রেস্পন্স পাওয়া যাচ্ছে। কিন্তু রিকুয়েষ্ট এর পুরো যাত্রাটা হয়তো অনেকের কাছেই ক্লিয়ার না। চলুন তাহলে লারাভেল লাইফসাইকেলে একবার ঘুরে করে আসা যাক।

রিকুয়েষ্ট এর ক্ষেত্রে যাত্রাটা শুরু হয় ওয়েব সার্ভার (এপাচি/এঞ্জিনএক্স) থেকে। আর সেখান থেকে রিকুএষ্টটি চলে আসে সরাসরি public/index.php ফাইলে। অর্থাৎ লারাভেল লাইফ সাইকেলের যাত্রা শুরু এখান থেকেই। .htaccess ফাইল এর সাহায্যে যত ধরণের রিকুয়েষ্ট আসে, সবগুলো রিকুয়েস্ট index.php তে পাঠানো হয়।

index.php এর প্রথম গুরুত্বপূর্র্ণ কাজ হলো composer থেকে জেনারেট হওয়া ভেন্ডরের ভেতরের সকল ফাইলকে রিকোয়ারর্ড করা। যার মাধ্যমে আমরা ভেন্ডরের ভেতরে থাকা ক্লাসগুলোকে আমাদের প্রজেক্টে ব্যববহার করতে পারি।

                                                     
এর পরের ধাপে index.php লারাভেল এপ্লিকেশনের একটি ইন্সট্যান্স রিসিভ করে। যে ইন্সট্যান্সটি রিটার্রন হয়েছে bootstrap/app.php ফাইল থেকে। আমরা যদি এই ফাইলটিতে যাই তাহলে দেখবো প্রথমেই Application ক্লাসটির একটি ইনস্ট্যান্স তৈরি করা হয়েছে এবং তার কন্সট্রাক্টরে application এর বেজ পাথটি পাস্ করে দেয়া হয়েছে। আর তার পরের ধাপে ৩ তা ক্লাসকে পুরো Application এর সাথে singleton এর মাধ্যমে বাইন্ড করে দেওয়া হয়েছে। আর তা হলো :

১। Illuminate\Contracts\Http\Kernel যাকে বাইন্ড করা হয়েছে App\Http\Kernel::class এই ক্লাসটির সাথে। অর্থাৎ Illuminate\Contracts\Http\Kernel এই ইন্টারফেসটির জন্য App\Http\Kernel::class এর ইন্সট্যান্সটি তৈরী হবে। আর এটির কাজ হলো Http থেকে আসা সকল রিকুয়েস্টগুলোকে হ্যান্ডেল করা.

২। Illuminate\Contracts\Console\Kernel যাকে বাইন্ড করা হয়েছে App\Console\Kernel::class এই ক্লাসটির সাথে। আর এটির কাজ হলো CLI - command-line interface থেকে আসা সকল রিকুয়েস্টগুলোকে হ্যান্ডেল করা.

৩। Illuminate\Contracts\Debug\ExceptionHandler::class যাকে বাইন্ড করা হয়েছে App\Exceptions\Handler::class এই ক্লাসটির সাথে। আর এই ক্লাসটিই প্রজেক্ট এর সকল Exception গুলোকে Handle করে।

                                                                         

  পস প্রিন্টার এর সকল সমস্যার সমাধান

আর এই বাইন্ডিং গুলো শেষ হলেই এপ্লিকেশনের ইন্সট্যান্সটি রিটার্র্ন হয় index.php এর কাছে।

যাত্রা এখনো শেষ হয়নি, এখনো অনেকটা পথ বাকি আছে.....   (সংগৃহীত )

আপনি ও পছন্দ করতে পারেন