Покращене об'єднання URL-параметрів у HTTP-клієнті Laravel 12.33

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 04 березня, 2026
Новий реліз Laravel 12.33.0 приносить ще більше зручностей для розробників із новими методами, покращеннями в роботі з HTTP-клієнтом та чіткішими повідомленнями про помилки. Чи готові ви дізнатися, які функції відкривають нові можливості для вашого проєкту? Читайте далі

Цього тижня команда Laravel презентувала версію 12.33.0, яка включає новий метод doesntContain() для Stringable, функцію об'єднання URL-параметрів у HTTP-клієнті (замість їх заміни), покращення повідомлень про помилки в BroadcastManager та інше.

# Метод Stringable doesntContain()

Майкл Контенто додав метод doesntContain() до Stringable для забезпечення симетрії з існуючим методом contains().

$str = str('laravel-news.com');

$str->contains('laravel'); // true
$str->doesntContain('laravel'); // false
$str->doesntContain('NEWS'); // true
$str->doesntContain('NEWS', ignoreCase: true); // false

# HTTP-клієнт: об'єднання параметрів

Кріс Джонс запропонував метод mergeUrlParameters() для PendingRequest, оскільки withUrlParameters замінює всі параметри. Тейлор Отвел оновив PR, щоб завжди об'єднувати параметри, а не створювати новий метод:

Http::macro('service', function () {
    return Http::baseUrl('https://api.example.com')
        ->withUrlParameters(['version' => 'v1', 'tenant' => 'acme']);
});

// До: <12.33, `version` видаляється.
Http::service()->withUrlParameters(['tenant' => 'beta']);
// ['tenant' => 'beta']

// Після: +12.33, параметри об'єднуються.
Http::service()->withUrlParameters(['tenant' => 'beta']);
// ['version' => 'v1', 'tenant' => 'beta']

Зміна в withUrlParameters() не призводить до розриву сумісності: якщо потрібно налаштувати URL-параметри для повторно використовуваного запиту, ви можете вказати лише ті параметри, які повинні бути переписані.

# Покращення повідомлень про помилки в BroadcastManager

Матіас Грімм запропонував зрозуміліші повідомлення про помилки, коли драйвер трансляції не може ініціалізуватися:

// До:
//   TypeError: Pusher\Pusher::__construct(): Аргумент #3 ($app_id) повинен бути типу string, передано null

// Після:
//   BroadcastException: Не вдалося створити транслятор для з'єднання "my-connection" з помилкою:
//   Pusher\Pusher::__construct(): Аргумент #3 ($app_id) повинен бути типу string, передано null

# Примітки щодо випуску

Повний список нових функцій та оновлень ви можете знайти нижче, а також зміни між версіями 12.32.0 та 12.33.0 на GitHub. Наступні примітки взято з чек-листа:

# v12.33.0

Популярні

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту