Laravel-এ যখন আপনি ইউজার ইনপুট নিয়ে কাজ করছেন, তখন ভ্যালিডেশন (সত্যতা যাচাই) অত্যন্ত গুরুত্বপূর্ণ। এটি নিশ্চিত করে যে কোনো তথ্য ডেটাবেজে সংরক্ষণ করার আগে সেটি সঠিক, নিরাপদ এবং কাঙ্ক্ষিত ফরম্যাটে আছে কিনা। যেমন:
- একটি ফিল্ড ফাঁকা রাখা যাবে না,
- ইমেইল অ্যাড্রেসটি সঠিক কিনা,
- নির্দিষ্ট ফরম্যাট মেনে চলেছে কিনা — এসব যাচাই ভ্যালিডেশন দিয়ে করা হয়।
Laravel এই কাজটি করার জন্য দুটি প্রধান উপায় দেয়:
✅ কন্ট্রোলারের ভেতরেই ম্যানুয়াল ভ্যালিডেশন
✅ অথবা আলাদা FormRequest ক্লাস ব্যবহার করে
কিন্তু কোনটি ভাল? নিচে আমরা দুইটি পদ্ধতির তুলনা করে দেখাচ্ছি — যাতে আপনি আপনার প্রজেক্টের জন্য উপযুক্ত পদ্ধতি বেছে নিতে পারেন।
১. Manual Validation: সহজ ও দ্রুত, তবে গড়মিল হতে পারে
উদাহরণ:
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email',
]);
সুবিধা:
- সরাসরি কন্ট্রোলারে লিখে দ্রুত ব্যবহার করা যায়
- ছোট ফর্ম বা কম ফিল্ড থাকলে উপযুক্ত
অসুবিধা:
- ফিল্ড বেশি হলে কোড জটিল ও বিশৃঙ্খল হয়ে পড়ে
- একই ভ্যালিডেশন একাধিক স্থানে লাগলে বারবার লিখতে হয়
- কোড পুনর্ব্যবহারযোগ্য নয়
২. FormRequest: পরিপাটি, পুনঃব্যবহারযোগ্য এবং স্কেলযোগ্য
কীভাবে ব্যবহার করবেন:
php artisan make:request StoreUserRequest
তারপর, rules()
মেথডে নিয়ম লিখুন:
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
];
}
সুবিধা:
- কন্ট্রোলার পরিষ্কার ও ছোট থাকে
- একাধিক স্থানে একই ভ্যালিডেশন প্রয়োগ করা যায়
- কাস্টম মেসেজ ও অথরাইজেশন সহজে যোগ করা যায়
অসুবিধা:
- একটু বেশি সেটআপ দরকার (নতুন ক্লাস তৈরি করতে হয়)
- খুব সহজ বা ছোট ভ্যালিডেশনের জন্য অতিরিক্ত মনে হতে পারে
৩. কখন 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)