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

Перекладено ШІ
Оригінал: 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