Laravel Fluent Validation: об’єктно-орієнтований конструктор правил валідації.

Перекладено ШІ 0 Laravel News 27 травня, 2026

Пакет Laravel Fluent Validation замінює звичні рядкові правила на зручний об’єктно-орієнтований інтерфейс із повною підтримкою типізації та IDE. Дізнайтеся, як цей інструмент допоможе зробити вашу валідацію чистішою, безпечнішою та значно продуктивнішою.

Laravel Fluent Validation від розробника Sander Muller — це пакет, що замінює традиційний синтаксис валідації Laravel на об'єктно-орієнтований Fluent API. Він забезпечує автодоповнення в IDE та типобезпеку, гарантуючи відповідність правил обраному типу даних.

# Гнучкі та типобезпечні правила

Замість конкатенації рядків на кшталт 'required|string|min:2|max:255', ви використовуєте ланцюжок методів. API враховує контекст: як тільки визначено тип (наприклад, string або date), стають доступними лише ті методи, що стосуються цього конкретного типу:

use SanderMuller\LaravelFluentValidation\FluentRule;
 
$rules = [
    'name' => FluentRule::string()->required()->min(2)->max(255),
    'published_at' => FluentRule::date()->after('today')->nullable(),
    'age' => FluentRule::integer()->min(18)->max(99),
];

# Валідація вкладених масивів

Пакет спрощує роботу зі складними структурами даних завдяки методам each() та children(). Це дозволяє описувати правила відповідно до архітектури масиву, уникаючи громіздкої крапкової нотації (dot-notation):

'items' => FluentRule::array()->required()->min(1)->each(
    FluentRule::children([
        'id' => FluentRule::integer()->required()->exists('products', 'id'),
        'quantity' => FluentRule::integer()->required()->min(1),
    ])
),

# Оптимізація продуктивності

Окрім зручного синтаксису, пакет пропонує кілька технічних покращень:

  • Оптимізація O(n): для великих вкладених масивів використовується алгоритм розширення масок, який працює значно швидше за стандартний підхід Laravel O(n²).
  • Fast-Check Closures: популярні правила компілюються у PHP-замикання, що дозволяє валідатору оминати зайві витрати ресурсів основного рушія.
  • Групування запитів до БД: правила exists та unique для масивів автоматично об’єднуються в один запит whereIn, що суттєво знижує навантаження на базу даних.

# Інтегровані повідомлення та мітки

Зрозумілі назви полів (labels) та кастомні повідомлення про помилки можна вказувати безпосередньо в ланцюжку правил. Це позбавляє необхідності створювати окремі масиви attributes() або messages() у Form Requests:

'email' => FluentRule::string()
    ->email()
    ->label('Email Address')
    ->message('Please provide a valid business email.', 'email'),

# Встановлення

Встановити пакет можна через Composer:

composer require sandermuller/laravel-fluent-validation

Пакет вимагає PHP 8.2+ та Laravel 11.0 або вище. Також передбачені спеціальні трейти для інтеграції з проєктами на Livewire та Filament.

Дізнатися більше та переглянути повну документацію можна на GitHub.

Популярні

Інше, що варто прочитати

73 Оновлено 27 травня, 2026

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

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

17 Оновлено 27 травня, 2026

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

14 Оновлено 27 травня, 2026

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання