Laravel 13.4.0: строгий режим FormRequest и инспекция очередей

В Laravel 13.4.0 добавлен глобальный строгий режим для FormRequest, новые методы для работы с очередями и поддержка атрибута #[Delay] в компонентах. Также обновление включает исправления валидации, поддержку overflow в Carbon и багфиксы.

Строгий режим FormRequest

Добавлен режим, при котором FormRequest отклоняет любые входные поля, не объявленные в методе rules(). Ранее Laravel валидировал только известные поля, игнорируя остальные, что позволяло отправлять лишние параметры без ошибок.

Глобальное включение выполняется в AppServiceProvider:

use Illuminate\Foundation\Http\FormRequest;

public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}

Режим можно включать точечно через атрибут:

use Illuminate\Foundation\Http\Attributes\FailOnUnknownFields;

#[FailOnUnknownFields]
class StoreUserRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'name' => 'required|string',
            'email' => 'required|email',
        ];
    }
}

Если включен строгий режим, передача, например, поля is_admin вместе с name и email приведет к ошибке валидации.

Для отдельных классов можно отключить поведение:

#[FailOnUnknownFields(false)]
class WebhookRequest extends FormRequest
{
    // Разрешает неизвестные поля даже при глобальном строгом режиме
}

По умолчанию режим отключен, поэтому поведение не меняется без явного включения.

Инспекция задач очереди

Добавлены новые методы фасада очередей, позволяющие проверять состояние задач: ожидающие, отложенные и зарезервированные. Это упрощает отладку и мониторинг очередей на уровне приложения.

Поддержка #[Delay]

Атрибут #[Delay] теперь работает не только в заданиях, но и в Bus Dispatcher и NotificationSender. Это позволяет задавать задержку выполнения декларативно в разных частях системы очередей.

Обновления Carbon

Добавлена поддержка параметра overflow для операций plus и minus. Это позволяет контролировать поведение при переполнении дат.

Исправления валидации

Исправлены ошибки, связанные с обработкой null значений и типами данных в правилах валидации.

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Ward: сканер безопасности для Laravel

Ward - это CLI-инструмент для проверки безопасности Laravel-проектов. Он анализирует конфигурацию, зависимости и код, выявляя уязвимости и ошибки настроек. Подходит для локальной проверки и интеграции в CI/CD.

Laravel MCP - AI-взаимодействия по универсальному стандарту

Laravel MCP - новая библиотека для Laravel, которая позволяет легко создавать AI-серверы по универсальному протоколу Model Context Protocol. MCP даёт структурированный способ взаимодействия AI-клиентов с вашим приложением через инструменты, ресурсы и шаблоны запросов.