۱ محمدجوکار
نحوه صحیح اعتبارسنجی کردن اطلاعات
جامعه پی اچ پی ایجاد شده در ۲۰ بهمن ۱۴۰۱

عرض سلام

میدونیم که به مدلهای زیادی و در جاهای زیادی میشه ولیدیشن انجام داد. اما دقیقا نمیدونم کدوم یکی،‌ میتونه بهتر باشه.

با توجه به تصویر زیر، من برای عملیات‌های GET & POST اومدم بین کلاس‌هام، یه کلاس ولیدیشن تعریف کردم و اطلاعات رو از endpoint گرفتم و فرستادم سمت کلاس‌ها. اونجا ولیدیشن رو انجام دادم و نتیجه رو برگردونم سمت endpoint؛‌ در نهایت با توجه به نتیجه‌ی برگشتی از سمت کلاس‌ها، یا ارور نشون دادم و یا عملیات رو اجرا کردم..

bf8c-Screenshot (695).png




یه روش دیگه که به ذهنم رسید،‌ این بود که دیتاهایی که دریافت میکنم رو، همینجا توی endpoit اعتبارسنجی‌ اولیه رو انجام بدم،‌ مثلا اینکه آیا مقدار دریافتی استرینگه؟‌ آیا حتما set شده؟‌ خالی نیست؟

و برای اعتبارسنجی‌های پیچیده‌تر (مثلا چک کردن اینکه آیا شهری که ما اصلا قراره اسمشو تغییر بدیم،‌ توی دیتابیس وجود داره یا نه؟) دیتا‌ها رو بفرستم توی کلاس‌های ولیدیشن.

این مدلی رو توی عملیات PUT و یه ذره توی GET انجام دادم. مثل تصویر زیر:‌

b2c6-Screenshot (696).png

ممنون میشم بفرمائید کدومشون مناسب تره،‌ بهینه تره؛‌ و اگرم اشتباهه کلا، لطفا بگید روش صحیح چیه؟‌

سلام محمد عزیز

روش دوم بهتر هست.

پیشنهاد میکنم کلاس‌ها و رول‌های ولیدیشن فریمورک‌های مطرح مثل لارول رو هم بررسی کنید.

در لاراول کلاس هایی وجود دارند که توی اونها رول‌ها تعیین و توسط ولیدیتور اعتبارسنجی میشند.

بهترین پاسخ
احمدرضا فاطمی کیا ۲۰ بهمن ۱۴۰۱، ۱۲:۳۷