Атрибути запиту HTTP-клієнта в Laravel 12.42

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Laravel 12.42 приніс кілька захоплюючих нововведень, таких як атрибути запитів HTTP-клієнта та підтримка Enum у замінах перекладача. Чи готові ви дізнатися більше про ці зміни та як вони можуть спростити вашу роботу? Читайте далі!

Команда Laravel випустила версію 12.42, яка включає атрибути запитів HTTP-клієнта, підтримку Enums у замінах Translator, методи перевірки індексів у схемах бази даних та багато іншого.

# Атрибути запитів HTTP-клієнта

Люк Кузміш запропонував метод withAttributes() для визначення атрибутів даних на екземплярі PendingRequest. Ви можете потім отримати їх за допомогою методу attributes():

$response = Http::withAttributes(['name' => 'first'])
    ->get('https://example.com/test');

$response->attributes(); // ['name' => 'first']

Деталі реалізації можна знайти у Запиті на злиття #58038.

# Підтримка Enums у замінах Translator

Хосейн Хосні представив оновлення, яке підтримує Enums у замінах Translator:

$t = new Translator($loader, 'en');
$t->get('string_backed_enum', ['month' => Month::February]);
// Laravel 12 був випущений у :month 2025
// Laravel 12 був випущений у лютому 2025

Деталі реалізації доступні у Запиті на злиття #58048.

# Перевірка індексів у схемі бази даних

Джек Бейліс додав методи whenTableHasIndex та whenTableDoesntHaveIndex для виконання коду в залежності від наявності індексу в таблиці:

use Illuminate\Support\Facades\Schema;

// До
public function up(): void
{
    if (! Schema::hasIndex('product', 'name')) {
        Schema::table('product', function (Blueprint $table) {
            $table->index('name', 'index_name');
        });
    }
}

// Після
public function up(): void
{
    Schema::whenTableHasIndex('product', 'name', function (Blueprint $table) {
        $table->index('name', 'index_name');
    });

    // Ви також можете вказати тип індексу...
    Schema::whenTableDoesntHaveIndex('product', 'name', function (Blueprint $table) {
        $table->index('name', 'index_name');
    }, 'unique');
}

Деталі реалізації знайдете у Запиті на злиття #58005.

# Зауваження до випуску

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

# v12.42.0