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

Перекладено ШІ 1 Laravel News 02 червня, 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

  • Виправлення компіляції запитів із використанням orderByRaw з виразами — @LukeTowers
  • [12.x] Вузький тип після перевірки Str::is*(...)@axlon
  • [12.x] Виправлення недійсного докблоку — @tm1000
  • [12.x] Рефакторинг switch на match — @amirhshokri
  • [12.x] Виправлення проблеми з загостреннями в компоненті виключення — @AhmedAlaa4611
  • [12.x] Переконатися, що виклик завдання в групі працює так, як очікується — @jackbayliss
  • Виправлення: видалено повторюване слово в методі Str::apa@balboacodes
  • Рефакторинг: додано |null у докблок — @alipowerful7
  • [12.x] Покращення повідомлень про помилки php artisan config:cache та php artisan optimize для несеріалізованих значень — @mathiasgrimm
  • [12.x] Переконатися, що тривалість cookie відповідає тривалості сесії в проміжному ПЗ StartSession — @michaelcontento
  • Запуск тестів на версії PostgreSQL 18 — @JurianArie
  • [12.x] Зменшити повторні вставки в тестах — @cosmastech
  • [12.x] Виправлення використання директиви blade pushIf з комплексними умовами (#57264) — @hosni
  • [12.x] Додати Stringable::doesntContain() для симетрії API — @michaelcontento
  • [12.x] Покращення повідомлень про помилки BroadcastManager при спробі отримати Broadcaster — @mathiasgrimm
  • [12.x] HTTP-клієнт: додано mergeUrlParameters() для об'єднання URL-параметрів без їх переписування — @leek

Популярні

Інше, що варто прочитати

15 Оновлено 01 червня, 2026

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

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

14 Оновлено 01 червня, 2026

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

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

49 Оновлено 01 червня, 2026

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

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