Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 09 липня 2026

Підтримка HTTP-методу QUERY у Laravel 13.19

Реліз Laravel 13.19.0 завершує впровадження підтримки HTTP-методу QUERY у HTTP-клієнті та тестових хелперах, а також додає низку покращень для роботи з колекціями, рядками та чергами завдань поряд із звичними виправленнями помилок.

Ключові нововведення

Метод Http::query() для HTTP-клієнта

HTTP-клієнт отримав новий метод query() для надсилання запитів із HTTP-дієсловом QUERY, яке передає параметри в тілі запиту, а не в URL. Цей метод працює аналогічно до існуючих post(), put() та patch(), за замовчуванням надсилаючи JSON або дані у форматі form-encoded при виклику asForm().

$response = Http::query('https://api.example.com/search', [
    'filter' => ['status' => 'active'],
]);

Існуюча обробка URL-параметрів залишається незмінною: методи withQueryParameters() та аргумент $query для get() продовжують працювати як і раніше.

Тестові хелпери query() та queryJson()

Для тестування маршрутів, що відповідають на QUERY-запити, додано відповідні хелпери query() та queryJson(). Вони працюють аналогічно до специфічних методів на кшталт delete() та deleteJson(), розміщуючи тестові дані в тілі запиту.

Route::match(['QUERY'], '/search', fn () => request()->input('filter'));
$this->queryJson('/search', ['filter' => 'active'])->assertOk();

Метод колекції reduceInto()

Новий метод reduceInto() є варіантом reduce() для випадків, коли потрібно мутувати акумулятор на місці замість повернення нового значення на кожній ітерації. Колбек отримує акумулятор та поточний елемент, а його повернене значення ігнорується, тому об'єктні акумулятори не потребують return:

$stats = $orders->reduceInto(new OrderStats, function ($stats, $order) {
    $stats->total += $order->amount;
    $stats->count++;
    $stats->largest = max($stats->largest, $order->amount);
});

Для масивів або скалярних акумуляторів слід передавати акумулятор за посиланням:

$tagsMap = $posts->reduceInto([], function (&$map, $post) {
    $post->tags->each(fn ($tag) => $map[$tag][] = $post->title);
});

Хелпер для рядків counted()

Метод Str::counted() та його еквівалент для Stringable формують множину слова та додають числівник одним викликом - це скорочений запис для plural($count, prependCount: true):

str('order')->counted(1); // "1 order"
str('order')->counted(2); // "2 orders"

Покращення черг завдань

Масові відправлення до SQS тепер використовують API SendMessageBatch замість окремого виклику для кожного завдання, що скорочує кількість запитів при додаванні багатьох завдань одночасно. Фейк черги тепер може інспектувати зарезервовані завдання, тож тести можуть перевіряти завдання, які взято в обробку, але ще не завершено.

Інші виправлення та покращення

Серед додаткових змін:

  • Передача параметра deletedAtColumn у методи assertSoftDeleted() та assertNotSoftDeleted()
  • Можливість визначати параметри конфігурації пошти без імені
  • Завершення значення стилю за замовчуванням крапкою з комою в методі ComponentAttributeBag::merge()
  • Додано тести для where-клаузів з відносними датами та методів past/future правила date

Повний список змін доступний у офіційному changelog та release notes.

14

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Новини 27 жовтня 2026

Filament v5.11.0: поля й віджети на React, Vue і Svelte та жорсткіший захист Livewire

Filament v5.11.0 дозволяє писати власні поля форм, компоненти схем і віджети на React, Vue, Svelte або чистому JavaScript. Паралельно v5.11.0 і v4.16.0 закривають для клієнта внутрішні Livewire-методи та стан і додають опційні ліміти для репітерів і пагінації таблиць.

2
Новини 27 жовтня 2026

Livewire 4.4.8 закриває обхід #[Authorize], а NativePHP Mobile - сім вразливостей

Livewire 4.4.8 виправляє GHSA-mhf7-xp6r-6qrc (CVSS 6.5): атрибут #[Authorize] можна було обійти й виконати дію над чужим записом. Того ж тижня NativePHP опублікувала сім попереджень для NativePHP for Mobile - виправлення в nativephp/mobile 4.6.1 і 3.3.11, але до користувачів вони дійдуть лише з новою збіркою застосунку.

1

Вакансії за темою

EpicentrK
8 днів тому

BackEnd PHP

Розробка та імплементація сервісів на базі мікросервісної архітектури на PHP, підтримка технічної культури команди, дотримання інженерних стандартів і дедлайнів. Вимоги: від 4 років комерційного досвіду з PHP 7+, досвід з PostgreSQL/MySQL та MongoDB, RabbitMQ, Elasticsearch, Docker, Kubernetes, CI/CD (Jenkins, GitLab), REST API, тестування та Agile.

Інтелекс / Intelex
10 днів тому

Senior PHP Developer

Розробник підтримуватиме та розвиватиме існуючу CMS і понад 20 клієнтських проєктів, рефакторитиме legacy-код, писатиме новий функціонал на PHP/MySQL та React, оптимізуватиме БД і продуктивність, налаштовуватиме деплой і моніторинг. Основний стек: PHP 8.x, MySQL, React, REST API, Docker, CI/CD. Вимоги: від 3 років комерційного досвіду, англійська B1+ для технічної документації.

Bewort
13 днів тому

AI-Driven PHP Developer

Розробник бекенду на PHP/Laravel для платформи охорони здоров'я (кредентиалінг, комплаєнс, стафінг, автоматизація робочих процесів). Завдання: проєктування REST API та масштабованої архітектури, робота з PostgreSQL, асинхронні черги (AWS SQS, RabbitMQ, Kafka), участь у AI-автоматизації та розробка краулерів. Вимоги: 4+ років бекенд або фулстек досвіду, сильний Laravel, продуктове мислення, англійська B2+.

Пакети за темою

Larastan

nunomaduro/larastan

Larastan — це розширення phpstan/phpstan для Laravel, яке дозволяє виявляти помилки у коді без його запуску.

6,541 v3.13.2 13 9

Horizon

laravel/horizon

Панель управління та програмна конфігурація для черг Laravel.

4,177 v5.50.1 13 7