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

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 07 січня, 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

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

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

Logomark Logotype

Використання повнотекстового пошуку в Laravel

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

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення