Anophel-آنوفل هنر اعتبار سنجی در لاراول | آشنایی با Validation

هنر اعتبار سنجی در لاراول | آشنایی با Validation

انتشار:
1

لاراول فریمورک PHP برای برنامه نویسان وب است. که به ما کمک می کند تا برنامه ها و API های قوی بسازیم. همانطور که بسیاری از شما می دانید راه های زیادی برای تایید درخواست در لاراول وجود دارد. در حوزه توسعه وب، اعتبارسنجی مناسب داده ها کلید تضمین امنیت و یکپارچگی داده ها است و رسیدگی به اعتبارسنجی درخواست بخش بسیار مهمی از هر برنامه است.

لاراول یک ویژگی عالی دارد که به خوبی با این موضوع مقابله می کند. لاراول با سیستم اعتبارسنجی زیبا و قوی خود، این کار را هم کارآمد و هم برای توسعه‌دهندگان مناسب می‌کند. بیایید عمیقاً به دنیای اعتبارسنجی لاراول شیرجه بزنیم و تکنیک ها و عملکردهای مختلف را از طریق نمونه های کد بررسی کنیم.

اعتبار سنجی لاراول چیست؟

اعتبار سنجی لاراول یک مؤلفه غنی از ویژگی است که به توسعه دهندگان کمک می کند تا ورودی کاربر را بدون زحمت تأیید کنند. این یک سینتکس روان و گویا برای تعریف قوانین اعتبار سنجی ارائه می دهد و شما را قادر می سازد قبل از پردازش بیشتر از معتبر بودن داده های ارسال شده توسط کاربران اطمینان حاصل کنید. اعتبار سنجی لاراول به طور یکپارچه با ورودی فرم، درخواست های JSON و موارد دیگر ادغام می شود.

مقدمه ای بر اعتبارسنجی لاراول

سیستم اعتبارسنجی لاراول به گونه ای طراحی شده است که قدرتمند و انعطاف پذیر باشد و به توسعه دهندگان این امکان را می دهد تا طیف گسترده ای از قوانین اعتبار سنجی را پیاده سازی کنند تا اطمینان حاصل شود که داده های پردازش شده در برنامه های خود دقیق و ایمن هستند.

اعتبار سنجی پایه

بیایید با اصول اولیه شروع کنیم. در اینجا چگونه می توانید داده های فرم ساده را در یک کنترلر تأیید کنید:

use Illuminate\Http\Request;

public function store(Request $request)
{
    $validatedData = $request->validate([
        'title' => 'required|max:255',
        'content' => 'required',
    ]);

    // Proceed with the validated data...
}

این قطعه کد تضمین می کند که هر دو قسمت title و content وجود دارند و title از 255 کاراکتر تجاوز نمی کند.

تکنیک های اعتبار سنجی پیشرفته

پیام های خطای سفارشی

برای تجربه کاربری بهتر، ممکن است بخواهید پیام های خطا را سفارشی کنید. که در زیر نمونه ای از آن را می بینید:

$request->validate([
    'email' => 'required|email',
    'password' => 'required|min:6',
], [
    'email.required' => 'Email is required for registration.',
    'password.min' => 'Passwords must be at least 6 characters.',
]);

با استفاده از این تکه کد می توانید به کاربر پیام های خطای متنوعی نمایش دهید.

اعتبار سنجی آرایه ها

اعتبارسنجی ورودی های آرایه، مانند چندین tag برای یک پست وبلاگ، بسیار ساده است. برای این کار کافی است از قانون array استفاده کنید.

$request->validate([
    'tags' => 'required|array',
    'tags.*' => 'required|string|distinct|min:3',
]);

این اعتبار سنجی تضمین می کند که tags یک آرایه است و هر عنصر یک رشته مجزا از حداقل 3 کاراکتر است.

اعتبار سنجی منحصر به فرد برای فیلدها

اعتبارسنجی منحصر به فرد(Unique) ضروری است، برای مثال شما یک فرم احراز هویت را تصور کنید که در آن username و email وجود دارد. این نوع اعتبار سنجی به خصوص برای فیلدهایی مانند ایمیل یا نام کاربری بسیار پر کاربرد است:

$request->validate([
    'username' => 'required|string|max:255|unique:users',
    'email' => 'required|email|unique:users,email',
]);

این قطعه تضمین می کند که نام کاربری در جدول کاربران منحصر به فرد است و ایمیل نه تنها منحصر به فرد است بلکه از فرمت مناسب نیز پیروی می کند.

اعتبارسنجی تاریخ

با استفاده از سیستم اعبتارسنجی لاراول می توانید بسیار راحت به تاریخ ها رسیدگی کنید. چطور؟ ابتدا اطمینان حاصل کنید که آنها در قالب صحیح و از نظر منطقی سازگار هستند. به صورت زیر:

$request->validate([
    'event_date' => 'required|date|after:today',
    'deadline' => 'required|date|before:event_date',
]);

در اینجا event_date باید تاریخ آینده باشد و deadline باید قبل از event_date باشد.

اعتبار سنجی شروط

گاهی اوقات، شما نیاز به فیلدهایی دارید که فقط تحت شرایط خاصی مورد نیاز باشند. مثلا تصور کنید یک فروشگاه دارید و سیستم کد تخفیف را پیاده سازی کردید و می دانید که وارد کردن کد تخفیف به صورت اخیتاری می باشد:

$request->validate([
    'discount_code' => 'nullable|string',
    'discount_amount' => 'required_if:discount_code,null|numeric|min:0',
]);

در این مثال، discount_amount تنها در صورتی مورد نیاز است که discount_code ارائه نشده باشد.

آپلود فایل ها و محدودیت های اندازه

هنگام مدیریت آپلود فایل، اعتبارسنجی نوع و اندازه فایل بسیار مهم است، زیرا ممکن است کسی دیتای عظیمی را بر روی سرور یا هاست شما آپلود کند و دچار مشکلاتی شوید. برای این کار کافی است به صورت زیر اعتبارسنجی کنید :

$request->validate([
    'document' => 'required|file|mimes:pdf,docx|max:5000',
]);

این تضمین می کند که document آپلود شده یک سند PDF یا یک سند Word است و از 5 مگابایت تجاوز نمی کند.

قوانین اعتبار سنجی سفارشی

گاهی اوقات قوانین اعتبارسنجی بیشتری یا متفاوتی نیاز دارید که ممکن است در سیستم اعتبارسنجی لاراول نباشد. برای سناریوهای پیچیده تر، می توانید قوانین اعتبارسنجی سفارشی را تعریف کنید:

use Illuminate\Contracts\Validation\Rule;

class ValidDiscount implements Rule
{
    public function passes($attribute, $value)
    {
        // Custom logic to validate discount value
        return $value > 0 && $value <= 50;
    }

    public function message()
    {
        return 'The discount value is invalid.';
    }
}

// In Controller
$request->validate([
    'discount' => ['required', new ValidDiscount()],
]);

این قانون سفارشی تضمین می کند که مقدار تخفیف در محدوده خاصی قرار می گیرد.

اعتبارسنجی و تغییر مسیر با مسیرهای نامگذاری شده

لاراول همچنین امکان تغییر مسیر آسان با مسیرهای نامگذاری شده را در صورت عدم اعتبارسنجی فراهم می کند:

public function store(Request $request)
{
    $validatedData = $request->validate([...]);

    // On success, redirect to a named route
    return redirect()->route('posts.index');
}

رسیدگی به پاسخ های اعتبارسنجی

شما کنترل کاملی بر پاسخ در صورت عدم اعتبارسنجی دارید. این می تواند به ویژه در API ها مفید باشد:

use Illuminate\Http\Exceptions\HttpResponseException;

public function store(Request $request)
{
    $validatedData = $request->validate([...]);

    // Custom response on validation failure
    throw new HttpResponseException(response()->json(['message' => 'Invalid data'], 422));
}

هیچ اشکالی در تأیید درخواست ورودی در کنترلر وجود ندارد، اما این بهترین راه برای انجام این کار نیست و کنترلر شما نامرتب به نظر می رسد. کنترلر باید فقط یک کار را انجام دهد و درخواست از مسیر را رسیدگی کند و پاسخ مناسب را بازگرداند.

نوشتن منطق اعتبارسنجی در کنترلر، اصل تک مسئولیتی را زیر پا می گذارد. همه ما می دانیم که الزامات در طول زمان تغییر می کند و هر بار که نیاز به تغییر است مسئولیت های کلاس شما نیز تغییر می کند. بنابراین داشتن مسئولیت های زیاد در کلاس تک، مدیریت آن را بسیار دشوار می کند.

برای ایجاد یک اعبتارسنجی با استفاده از دستور زیر :

php artisan make:request UserStoreRequest

می توانید یک فایل اعتبارسنجی ایجاد کنید.

نتیجه

سیستم اعتبارسنجی لاراول گواهی بر تعهد آن به امنیت، یکپارچگی داده ها و راحتی توسعه دهندگان است. با استفاده از این تکنیک‌های اعتبارسنجی مختلف، می‌توانید مطمئن شوید که برنامه‌های لاراول شما قوی، ایمن و کاربرپسند هستند. پس ادامه دهید، این اعتبارسنجی‌ها را اجرا کنید و مهارت‌های لاراول خود را تماشا کنید!

#request#validation#php#laravel#لاراول#اعتبار_سنجی
نظرات ارزشمند شما :

در حال دریافت...

مقاله های مشابه

در حال دریافت...