Laravel 12.44 додає можливість afterResponse() callbacks у HTTP Client

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 21 березня, 2026
У Laravel 12.44 з'явилися callback-и після побудови HTTP‑відповіді, TestResponse::assertHeaderContains, нові now‑методи для Rule::date() та поле попередньої локалі в LocaleUpdated. Дізнайтеся, як ці оновлення спростять тести й роботу з HTTP‑відповідями у вашому проєкті.

Команда 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

Популярні

Logomark Logotype

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті

Logomark Logotype

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці