DEV Community

Cover image for লারাভেল FormRequest বনাম Manual Validation: আপনার কোনটি বেছে নেওয়া উচিত?
Sontus Chandra Anik
Sontus Chandra Anik

Posted on

লারাভেল FormRequest বনাম Manual Validation: আপনার কোনটি বেছে নেওয়া উচিত?

Laravel-এ যখন আপনি ইউজার ইনপুট নিয়ে কাজ করছেন, তখন ভ্যালিডেশন (সত্যতা যাচাই) অত্যন্ত গুরুত্বপূর্ণ। এটি নিশ্চিত করে যে কোনো তথ্য ডেটাবেজে সংরক্ষণ করার আগে সেটি সঠিক, নিরাপদ এবং কাঙ্ক্ষিত ফরম্যাটে আছে কিনা। যেমন:

  • একটি ফিল্ড ফাঁকা রাখা যাবে না,
  • ইমেইল অ্যাড্রেসটি সঠিক কিনা,
  • নির্দিষ্ট ফরম্যাট মেনে চলেছে কিনা — এসব যাচাই ভ্যালিডেশন দিয়ে করা হয়।

Laravel এই কাজটি করার জন্য দুটি প্রধান উপায় দেয়:
✅ কন্ট্রোলারের ভেতরেই ম্যানুয়াল ভ্যালিডেশন
✅ অথবা আলাদা FormRequest ক্লাস ব্যবহার করে

কিন্তু কোনটি ভাল? নিচে আমরা দুইটি পদ্ধতির তুলনা করে দেখাচ্ছি — যাতে আপনি আপনার প্রজেক্টের জন্য উপযুক্ত পদ্ধতি বেছে নিতে পারেন।

১. Manual Validation: সহজ ও দ্রুত, তবে গড়মিল হতে পারে

উদাহরণ:

$request->validate([
    'name' => 'required|string|max:255',
    'email' => 'required|email',
]);
Enter fullscreen mode Exit fullscreen mode

সুবিধা:

  • সরাসরি কন্ট্রোলারে লিখে দ্রুত ব্যবহার করা যায়
  • ছোট ফর্ম বা কম ফিল্ড থাকলে উপযুক্ত

অসুবিধা:

  • ফিল্ড বেশি হলে কোড জটিল ও বিশৃঙ্খল হয়ে পড়ে
  • একই ভ্যালিডেশন একাধিক স্থানে লাগলে বারবার লিখতে হয়
  • কোড পুনর্ব্যবহারযোগ্য নয়

২. FormRequest: পরিপাটি, পুনঃব্যবহারযোগ্য এবং স্কেলযোগ্য

কীভাবে ব্যবহার করবেন:

php artisan make:request StoreUserRequest
Enter fullscreen mode Exit fullscreen mode

তারপর, rules() মেথডে নিয়ম লিখুন:

public function rules()
{
    return [
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:users',
    ];
}
Enter fullscreen mode Exit fullscreen mode

সুবিধা:

  • কন্ট্রোলার পরিষ্কার ও ছোট থাকে
  • একাধিক স্থানে একই ভ্যালিডেশন প্রয়োগ করা যায়
  • কাস্টম মেসেজ ও অথরাইজেশন সহজে যোগ করা যায়

অসুবিধা:

  • একটু বেশি সেটআপ দরকার (নতুন ক্লাস তৈরি করতে হয়)
  • খুব সহজ বা ছোট ভ্যালিডেশনের জন্য অতিরিক্ত মনে হতে পারে

৩. কখন Manual Validation আর কখন FormRequest ব্যবহার করবেন?

পরিস্থিতি কোনটা ব্যবহার করবেন
ছোট বা অস্থায়ী প্রজেক্ট ✅ Manual Validation
শুধু ২-১টা ফিল্ড ✅ Manual Validation
একমাত্র একটি মেথডেই ভ্যালিডেশন দরকার ✅ Manual Validation
কাস্টম মেসেজ বা অথরাইজেশন লাগবে না ✅ Manual Validation
নিয়ম অনেক ও জটিল ✅ FormRequest
কন্ট্রোলারকে পরিষ্কার রাখতে চান ✅ FormRequest
একই ভ্যালিডেশন একাধিক স্থানে দরকার ✅ FormRequest
কাস্টম এরর মেসেজ বা এক্সেস কন্ট্রোল লাগবে ✅ FormRequest

৪. বোনাস টিপস: দুটিকে একসাথে ব্যবহার করুন

অনেক সময় দেখা যায়, FormRequest দিয়ে সাধারণ ভ্যালিডেশন করাই যথেষ্ট, তবে কিছু edge case থাকে যেগুলো কন্ট্রোলারে ম্যানুয়ালি চেক করাটা সহজ হয়। সে ক্ষেত্রে দুটি পদ্ধতি একসাথে ব্যবহার করাও একটি ভালো কৌশল।

সারাংশ:
ছোট কাজের জন্য Manual Validation, বড়, জটিল ও পুনঃব্যবহারযোগ্য ভ্যালিডেশনের জন্য FormRequest। দক্ষ Laravel ডেভেলপাররা বুঝে দুটিকে ব্যালেন্স করে ব্যবহার করেন।

Top comments (0)