Команда Laravel випустила версію 12.44 із можливістю запускати колбеки HTTP-клієнта після формування відповіді, новим методом перевірки заголовків у TestResponse, додатковими методами для fluent-валидації дат та іншими змінами.
# Запуск колбеків після формування HTTP-відповіді
Luke Kuzmish додав можливість визначати колбеки, які виконуються після побудови відповіді в HTTP-клієнті Laravel. Колбек дозволяє перевіряти відповідь, надсилати події або навіть змінювати її через afterResponse():
return Http::acceptJson()
->withHeader('X-Shopify-Access-Token', $shopCreds->token)
->baseUrl("https://{$shopCreds->shop_domain}.myshopify.com/admin/api/2025-10/")
->afterResponse(
// Повідомити про будь-які deprecation-повідомлення з заголовка
function (Response $response) use ($shopCreds) {
$header = $response->header('X-Shopify-API-Deprecated-Reason');
if ($header) {
event(new ShopifyDeprecationNotice($shopCreds->shop, $header);
}
})
->afterResponse(
// Проточити відповідь у наш власний клас відповіді
fn (Response $response) => new ShopifyResponse($response->toPsrResponse())
);
Деталі реалізації — у Pull Request #58088.
# Метод TestResponse::assertHeaderContains()
@Milad додав новий assertion-метод до класу TestResponse, який допомагає перевіряти вміст заголовка HTTP-відповіді в тестах:
$response->assertHeaderContains('X-Custom-Header', 'value');
Деталі — у Pull Request #58200.
# Додано методи "now" до правила Date
Caleb White додав нові методи до fluent-правила Date для перевірок, пов’язаних із now():
Rule::date()->andTime()->nowOrPast();
Rule::date()->andTime()->nowOrFuture();
Rule::date()->andTime()->future();
Rule::date()->andTime()->past();
Деталі — у Pull Request #58059.
# Додано попередню локаль до події LocaleUpdated
Matteo Palazzo оновив подію LocaleUpdated, додавши властивість $previous. Тепер у слухачів є доступ до попередньої локалі при обробці події:
function (LocaleUpdated $event) {
return $event->locale === 'foo' & $event->previousLocale === 'bar';
}
Деталі — у Pull Request #58179.
# Нотатки релізу
Повний перелік нововведень та змін і diff між 12.43.0 і 12.44.0 доступні на GitHub. Нижче — виписка з changelog:
# v12.44.0
- [12.x] Дозволяє простіше відмовлятися від
DatabaseLockprune lottery — @cosmastech у https://github.com/laravel/framework/pull/58152 - [12.x] Уточнено, що query builder повертає екземпляри
stdClass— @axlon у https://github.com/laravel/framework/pull/58150 - [12.x] feat: додано now-методи до правила Date — @calebdw у https://github.com/laravel/framework/pull/58059
- [12.x] Додано можливість запускати колбеки після побудови Http-відповіді — @cosmastech у https://github.com/laravel/framework/pull/58088
- Виправлено docblocks — @timacdonald у https://github.com/laravel/framework/pull/58157
- [12.x] Виправлено відсутню валідацію значення в Password::required() та поведінку з nullable empty … — @faisuc у https://github.com/laravel/framework/pull/58158
- [12.x] Виправлення docblocks для Eloquent
Collection(param) — @jnoordsij у https://github.com/laravel/framework/pull/58170 - [12.x] Додано подію MigrationSkipped — @jackbayliss у https://github.com/laravel/framework/pull/58167
- [12.x] Спрощено виклики
passthruуLazyCollectionта оновлено docblocks — @jnoordsij у https://github.com/laravel/framework/pull/58180 - [12.x] Додано тести для BusBatchable — @miladev95 у https://github.com/laravel/framework/pull/58175
- Додано попередню локаль до події LocaleUpdated — @OutlawPlz у https://github.com/laravel/framework/pull/58179
- [12.x] Виправлено вбудовану заміну ембедів у пошті за Content-ID — @dxnter у https://github.com/laravel/framework/pull/58173
- [12.x] Виправлено обробку multibyte-строк у chopStart і chopEnd — @mdariftiens у https://github.com/laravel/framework/pull/58183
- [12.x] Покращено типи docblock у
Collection— @jnoordsij у https://github.com/laravel/framework/pull/58176 - [12.x] Виправлено неможливість вимкнути
created_atабоupdated_atпри приєднанні моделей — @crynobone у https://github.com/laravel/framework/pull/58164 - Вилучено невикористані змінні з деструктурованих масивів — @rolfvandekrol у https://github.com/laravel/framework/pull/58187
- [12.x] Використовувати process для тригеру події видалення пакета — @cosmastech у https://github.com/laravel/framework/pull/58177
- [12.x] Виправлено deprecated для null array key у співставленні відношень HasOneOrMany — @serhiilabs у https://github.com/laravel/framework/pull/58191
- [12.x] Виправлено використання
Password::required()іPassword::sometimes()як масиву — @crynobone у https://github.com/laravel/framework/pull/58188 - [12.x] Додано TestResponse::assertHeaderContains і тести — @miladev95 у https://github.com/laravel/framework/pull/58200
- [12.x] Оновлено setup-node action до v6 — @jackbayliss у https://github.com/laravel/framework/pull/58196