Вийшла нова версія Laravel 11.30

4
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Цього тижня команда Laravel випустила версію 11.30, яка принесла нові можливості, такі як тестові допоміжні методи без відкладення та підтримка унікальних рядкових ідентифікаторів. Зацікавлені, як ці оновлення можуть покращити ваш процес розробки? Читайте далі, щоб дізнатися більше!

Цього тижня команда Laravel випустила версію v11.30, яка включає нові тестові хелпери defer, можливість визначати унікальні рядкові ID для моделей Eloquent, використання бонусних Enums з AuthorizesRequests та багато іншого

# Нові тестові хелпери withDefer() та withoutDefer()

Тім МакДональд додав тестові хелпери withoutDefer() та withDefer(). Використання withoutDefer() корисне, коли ви працюєте з тестами, що використовують defer, але потрібно його відключити, щоб перевірити результат відкладеного виклику:

// ❌ не працює
User::create(/* ... */);

$this->assertAgainstSomeDeferredOutcome();

// ✅ працює
$this->withoutDefer();

User::create(/* ... */);

$this->assertAgainstSomeDeferredOutcome();

Деталі реалізації цих хелперів можна знайти у Pull Request #53340.

# Введення трейту HasUniqueStringIds

Люк Кузміш оновив код для трейтов HasUuids та HasUlid, що дозволяє використовувати власні унікальні рядкові ID як ключі маршруту, не переозначуючи resolveRouteBindingQuery(). Ось приклад, як ви можете налаштувати типи унікальних рядків для вашої моделі:

trait HasTwrnsTrait
{
    use HasUniqueStringIds;

    public function newUniqueId()
    {
        return (string) Twrn::new();
    }

    protected function isValidKey($value): bool
    {
        return Twrn::isValid($value);
    }
}

Це оновлення не вводить жодних руйнівних змін, адже моделі HasUuids і HasUlid тепер використовують трейт HasUniqueStringIds. Більше деталей у Pull Request #53280.

# Дозволити методу authorize() приймати Enums

Йоган ван Хелден оновив трейт AuthorizesRequests, щоб він міг безпосередньо приймати бонусні Enums. Laravel нещодавно отримав кілька оновлень для прямого використання Enums в різних частинах фреймворку. Ось приклад використання Enum з методом authorize():

enum DashboardPermission: string
{
    case VIEW = 'dashboard.view';
}

// Перед
public function index(): Response
{
    $this->authorize(DashboardPermission::VIEW->value);

    //
}

// Після
public function index(): Response
{
    $this->authorize(DashboardPermission::VIEW);

    //
}

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

Ви можете переглянути повний список нових можливостей та оновлень нижче, а також зміни між версіями 11.29.0 та 11.30.0 на GitHub. Нижче наведено примітки до випуску, які безпосередньо взято з чек-листу:

# v11.30.0

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

Logomark Logotype

Що нового в PHP 8.5

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