Покращте валідацію електронної пошти за допомогою об'єкта правил Fluent Email у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 23 травня, 2025
Ларавел впроваджує новий об'єкт правил перевірки електронної пошти, який перетворює просту валідацію рядків на зручний та розширюваний інтерфейс. Чи готові ви дізнатися, як оптимізувати валідацію електронної пошти у вашій програмі та надати користувачам безпечний досвід? Читайте далі, щоб відкривати нові можливості в Ларавел!

Laravel представляє новий об'єкт правил Email, який перетворює валідацію електронних листів з простих текстових правил на інтуїтивно зрозумілий і розширювальний інтерфейс. Це покращення дозволяє точно контролювати вимоги до валідації електронних адрес, роблячи код більш читабельним і легким для підтримки.

Валідація електронних адрес часто вимагає різних рівнів строгості - від простого перевірки формату до глибокої перевірки DNS і запобігання спуфінгу. Новий об'єкт правил Email спрощує цю складність завдяки інтуїтивному інтерфейсу:

use Illuminate\Validation\Rule;

$request->validate([
    'email' => ['required', 'string', Rule::email()->strict()->dns()]
]);

Цей підхід є особливо корисним при реалізації правил валідації, адаптованих до різних категорій користувачів:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Email::macro('contractor', function () {
            return Email::default()
                ->strict()
                ->dns()
                ->rules('ends_with:@contractors.org,@freelance.net');
        });

        Email::macro('customer', function () {
            return Email::strictSecurity()
                ->rules('not_ends_with:@spam-domains.com');
        });

        Email::macro('partner', function () {
            return Email::default()
                ->dns()
                ->spoof()
                ->filter()
                ->rules('ends_with:@trusted-partners.biz');
        });
    }
}

class UserController extends Controller
{
    public function create(Request $request)
    {
        $request->validate([
            'personal_email' => ['required', Rule::email()->strict()],
            'business_email' => ['required', Email::contractor()],
            'contact_email' => ['required', Email::partner()]
        ]);

        // Логіка створення користувача
    }
}

Об'єкт правил Email має численні переваги у порівнянні з традиційною валідацією на основі масивів. Він створює інтуїтивний інтерфейс для комбінування вимог валідації, покращує читабельність коду та підтримує розширення через макроси. Ця гнучкість особливо корисна для управління різноманітними потребами валідації електронних адрес у вашому додатку