سلام دوستان من علی نظری هستم برنامه‌نویس و توسعه دهنده وب. توی مقاله امروز میخوام یک پکیج رو به شما معرفی کنم که خیلی جالب هست و کار رو برای توسعه‌دهنده های لاراول خیلی راحت تر میکنه.

اسم این پکیج Laravel Composite Validation Repository هست که توسط توسعه داده شده. این پکیج به ما اجازه میده تا چندین اعتبارسنجی که ممکنه جاهای مختلفی استفاده بشه رو توی یک جا نگه داریم و از اون استفاده کنیم. بذارید با مثال توضیح بدم:

فرض کنیم میخوایم یک درخواست (Request) که شامل یوزرنیم و عکس هست رو اعتبارسنجی (Validate) کنیم. طبق کد زیر ما یک کلاس برای یوزرنیم و یک کلاس برای عکس میسازیم:

: app/Rules/ImageRule.php

<?php

namespace App\Rules;

use Illuminatech\Validation\Composite\CompositeRule;

class ImageRule extends CompositeRule
{
    protected function rules(): array
    {
        return ['image', 'max:2048', 'mimes:png,jpg,jpeg'];
    }
}

: app/Rules/UsernameRule.php

<?php

namespace App\Rules;

use Illuminatech\Validation\Composite\CompositeRule;

class UsernameRule extends CompositeRule
{
    protected function rules(): array
    {
        return ['string', 'min:3', 'max:32', 'distinct:ignore_case', 'regex:/^[a-z0-9]+$/'];
    }
}

و خیلی راحت به شکل زیر میتونین از این کلاس استفاده کنین:

public function create(Request $request)
{
    $validate = $request->validate([
        'username' => ['required', new UsernameRule],
        'image' => ['required', new ImageRule],
    ]);
}

همونطور که دیدید کار ما خیلی راحت تر شد. چون میتونیم از کلاس UsernameRule توی Validationهای دیگه استفاده کنیم، بدون اینکه بخوایم تمام Rule ها رو دوباره تکرار کنیم. همچنین برای موقعی که میخوایم Rule ها رو تغییر بدیم فقط کافیه کلاس UsernameRule رو ویرایش کنیم. عالی نیست؟ 😃

آدرس

من واسه این مطلب از کمک گرفتم

منتظر نظراتتون هستم عزیزان 😉✌️