Цього тижня команда 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.
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.
Steve Bauman запропонував метод fluent() для класу HTTP Request, що дозволяє зручно передавати вхідні дані:
/** @var Illuminate\Http\Request $request */
$data = $request->fluent();
$data->title;
$data->body;
// тощо
Детальніше у Pull Request #53662.
Mior Muhammad Zaki додав сумісність коду з PHP 8.4 для версій Laravel 10.x та 11.x:
Повний список нових функцій і оновлень можна знайти нижче, а також різницю між 11.33.0 та 11.34.0 на GitHub. Нижче наведені примітки до випуску з журналу змін:
BackedEnum при використанні fromRoute() у MakesHttpRequests від @wietsewarendorff в #53593$ownerKey у MorphTo для кращої сумісності від @crynobone в #53592assertCount() для фальшивого сховища від @ahmadreza1383 в #53620Paginator для phpstan від @Afrowson в #53615Arr::last() від @talkinnl в #53619bearerToken стане нечутливим до регістру завдяки @samtlewis в #53627Number::spellOrdinal() для написання порядкових чисел словами від @joelstein в #53661SyntaxError при попередньому завантаженні Vite з порожніми активами від @jnoordsij в #53659class-string від @timacdonald в #53657never для методів, які завжди викликають виключення від @tamiroh в #53643withoutDefer відтепер також повертає $this від @tamiroh в #53644Request::fluent() від @stevebauman в #53662Support\Fluent від @stevebauman в #53665