Обновление Laravel 11.34: Fluent-запросы и новые возможности

от автора

На этой неделе команда Laravel выпустила версию 11.34, представив новые возможности, такие как метод Request::fluent(), хелпер Number::spellOrdinal() для преобразования чисел в порядковые слова, условное определение маршрутов, сокращенные методы для фейковых HTTP-ответов и многое другое.


Порядковые числительные в виде слов

Это случилось! Добавлен метод spellOrdinal() в хелпер Number, позволяющий преобразовывать порядковые числительные в текстовый формат:

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

Подробнее: Pull Request #53661.

Условные маршруты

Добавлен трейд 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-ответы

Джейсон МакКриари предложил сокращенные методы для имитации HTTP-ответов. Теперь можно использовать строки или числа вместо более сложного синтаксиса:

До версии 11.34:

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()

Представлен метод fluent() для класса Request, который позволяет легко и элегантно работать с входными данными:

/** @var Illuminate\Http\Request $request */ $data = $request->fluent();  echo $data->title; echo $data->body; // и так далее

Подробнее: Pull Request #53662.

Поддержка PHP 8.4

Добавлена совместимость Laravel 10.x и 11.x с PHP 8.4, что позволяет использовать новейшие возможности языка.

Примечания к выпуску

С полным списком изменений можно ознакомиться в changelog, а подробное сравнение версий 11.33.0 и 11.34.0 доступно на GitHub.


ссылка на оригинал статьи https://habr.com/ru/articles/862998/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *