У Laravel 11.38 з'явилося правило валідації електронної пошти з флюїдним підходом

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

Цього тижня команда Laravel випустила версію v11.38, яка включає нове правило валідації Email, можливість отримати об'єкт запиту або його значення у вигляді масиву, метод finally() для конвеєра та багато іншого.

# Нове правило валідації Email

Сандер Мюллер додав нове правило валідації Email, яке забезпечує аналогічний досвід, як правила для паролів і файлів.

// До
$request->validate([
  'email' => ['required', 'string', 'email', 'strict', 'dns'],
]);
 
// Після
$request->validate([
  'email' => ['required', 'string', Rule::email()->strict()->dns()],
]);

Деталі можна знайти у Pull Request #54067.

# Додано метод array() до FormRequest та Fluent

Стів Бауман додав метод array(), який дозволяє перетворити значення з об'єкта запиту або екземпляра Fluent:

$fluent = new Fluent(['email' => 'test@example.com']);
 
$fluent->array('email'); // ['test@example.com']
 
// ?email=test@example.com
$request->array('email'); // ['test@example.com']

Деталі можна знайти у Pull Request #54177.

# Додано метод finally() до конвеєра

Нуну Мадуро запропонував метод finally(), який надає змогу вказати зворотний виклик, що виконується незалежно від результату конвеєра.

// До
try {
    $result = Pipeline::send($deployment)
        ->through([PipeOne::class, PipeTwo::class]) // один з конвеєрів не викликає $next або викидає виключення...
        ->then(fn () => $deployment->deploy());
} finally {
    // очищення...
}
 
// Після
$result = Pipeline::send($deployment)
     ->through([PipeOne::class, PipeTwo::class]) // один з конвеєрів не викликає $next або викидає виключення...
     ->finally(fn () => /** очищення */)
     ->then(fn () => $deployment->deploy());

Деталі можна знайти у Pull Request #54110.

# Додано прапорець --except до команд Artisan Optimize

Джон Еріксон запропонував опцію --except для пропуску команд під час виконання оптимізацій. Цей новий параметр дозволяє вказати часткові ключі та перелік команд для виключення через кому:

# Пропустити за назвою команди
php artisan optimize --except route:cache
 
# Пропустити за ключем
php artisan optimize --except route
 
# Пропустити перелік ключів або назв команд через кому
php artisan optimize:clear --except route,view:cache

# Фільтрація маршрутів за дією в route:list

@miccehedin додав опцію --action для знаходження маршрутів з використанням конкретного рядка дії:

route:list --action=TestController

# Примітки до випуску

Детальний список нових функцій та оновлень ви можете знайти нижче, а також порівняння версій 11.37.0 та 11.38.0 на GitHub. Наступні примітки взято безпосередньо з changelog:

# v11.38.0

Популярні

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

Logomark Logotype

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

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

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

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