Ефективний доступ до даних запитів у Laravel 11.34

Перекладено ШІ 0 Laravel News 28 листопада, 2024

Цього тижня команда Laravel випустила версію 11.34, яка включає такі нововведення, як метод `Request::fluent()` та функцію `Number::spellOrdinal()`. Дізнайтеся більше про ці вдосконалення, а також про умовні визначення маршрутів і нові можливості для фейкових HTTP-відповідей

Цього тижня команда Laravel випустила версію v11.34, яка включає метод Request::fluent(), помічник spellOrdinal() для чисел, умовні визначення маршрутів, спрощені фальшиві відповіді на HTTP-запити та багато іншого.

# Написання порядкових чисел словами

Joel Stein додав метод spellOrdinal() до помічника Number, що дозволяє записувати порядкові числа словами:

'The ' . Number::spellOrdinal(40) . ' president of the United States is Ronald Reagan';

Детальніше у Pull Request #53661.

# Додавання умовного трейту до маршрутів

@Boorinio запропонував трейти Conditional для класу Route, що дозволяє розробникам додавати умовну логіку при визначенні маршрутів:

Route::middleware('shop')
    ->domain('{shop}.domain.com')
    ->when(App::isProduction(), function ($route) {
        $route->whereIn('shop', app(ShopService::class)->getShopSlugs());
    });

Детальніше у Pull Request #53654.

# Спрощені фальшиві HTTP-відповіді

Jason McCreary додав спрощений синтаксис для фальшивих HTTP-відповідей. Раніше було можливим використовувати масиви, але цього разу додано можливість використовувати рядки для тіла відповіді та цілі числа для коду статусу:

// Раніше
Http::fake([
    'google.com' => Http::response('Hello World'),
    'github.com' => Http::response(['foo' => 'bar']),
    'forge.laravel.com' => Http::response(status: 204),
]);
 
// Тепер
Http::fake([
    'google.com' => 'Hello World',
    'github.com' => ['foo' => 'bar'],
    'forge.laravel.com' => 204,
]);

Детальніше у Pull Request #53663.

# Додавання методу Request::fluent()

Steve Bauman запропонував метод fluent() для класу HTTP Request, що дозволяє зручно передавати вхідні дані:

/** @var Illuminate\Http\Request $request */
$data = $request->fluent();
 
$data->title;
$data->body;
// тощо

Детальніше у Pull Request #53662.

# Сумісність коду з PHP 8.4

Mior Muhammad Zaki додав сумісність коду з PHP 8.4 для версій Laravel 10.x та 11.x:

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

Повний список нових функцій і оновлень можна знайти нижче, а також різницю між 11.33.0 та 11.34.0 на GitHub. Нижче наведені примітки до випуску з журналу змін:

# v11.34.0

  • [10.x] Виправлено обробку масиву для очищення ланцюга від @Bencute в #53455
  • [11.x] Додано підтримку BackedEnum при використанні fromRoute() у MakesHttpRequests від @wietsewarendorff в #53593
  • [11.x] Поліпшено тестування від @crynobone в #53586
  • [11.x] Перенесено перевірку $ownerKey у MorphTo для кращої сумісності від @crynobone в #53592
  • Скинуто кеш атрибутів моделі Eloquent від @adamthehutt в #53583
  • [11.x] Додано нестатичне обгортання JsonResource від @SanderMuller в #53543
  • [10.x] Сумісність з PHP 8.4 від @crynobone в #53612
  • Додано assertCount() для фальшивого сховища від @ahmadreza1383 в #53620
  • Виправлено тип параметра у Paginator для phpstan від @Afrowson в #53615
  • [11.x] Додано генерики для Arr::last() від @talkinnl в #53619
  • Додано типізоване замикання до завантажувачів у консольному застосунку від @MatusBoa в #53613
  • Рефакторинг: деякі покращення продуктивності та читабельності від @dshafik в #53596
  • [11.x] Покращено документацію для роботи з enum-входами від @axlon в #53625
  • [11.x] Пропуск конструювання об'єкта, якщо немає встановлених колбеків від @axlon в #53502
  • Метод bearerToken стане нечутливим до регістру завдяки @samtlewis в #53627
  • [11.x] Виправлення успадкування атрибутів для вкладених груп розкладу від @istiak-tridip в #53626
  • [11.x] Підтримка PHP 8.4 від @crynobone в #53468
  • ☁️ від @taylorotwell в #53623
  • [11.x] Виправлення помилки в docblock від @stancl в #53636
  • Додано Number::spellOrdinal() для написання порядкових чисел словами від @joelstein в #53661
  • [11.x] Додано резервний метод PausePrompt від @jwpage в #53660
  • [11.x] Виправлення SyntaxError при попередньому завантаженні Vite з порожніми активами від @jnoordsij в #53659
  • [11.x] Поліпшено типи class-string від @timacdonald в #53657
  • [11.x] Використання типу never для методів, які завжди викликають виключення від @tamiroh в #53643
  • [11.x] Додано умовність до маршрутів від @Boorinio в #53654
  • [11.x] Метод withoutDefer відтепер також повертає $this від @tamiroh в #53644
  • Додано спрощення для фальшивих HTTP-відповідей від @jasonmccreary в #53663
  • Використано метод середовища замість методу isLocal від @NaokiTsuchiya в #53638
  • [11.x] Виправлення: забезпечити, щоб згенеровані політики повертали булеві значення від @Aluisio-Pires в #53632
  • Bus assertempty від @jasonmccreary в #53664
  • [11.x] Поліпшення поведінки групи розкладів від @istiak-tridip в #53641
  • [11.x] Додано метод Request::fluent() від @stevebauman в #53662
  • [11.x] Підтримка іменованих in-memory зв'язків SQLite від @stancl в #53635
  • Типи імен подій та зворотних викликів слухачів від @rudiedirkx в #53642
  • Очищення тестів з #53664 від @jasonmccreary в #53672
  • [11.x] Виправлення: запобігти створенню недійсних параметрів облікових даних AWS від @robchett в #53633
  • [11.x] Розширено можливості доступу та перетворення даних Support\Fluent від @stevebauman в #53665

Популярні

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

10 Оновлено 07 травня, 2026

Локальні моделі та їх скоупи в Laravel за допомогою атрибута Scope

В Laravel 12 ми отримали можливість використовувати новий підхід для визначення локальних скоупів у моделях Eloquent. Дізнайтеся, як новий атрибут #[Scope] спрощує цей процес і зберігає ваші назви методів незмінними

16 Оновлено 07 травня, 2026

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

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

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

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

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