Команда 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
- [12.x] Поліпшено тип повернення
Context::scope()від @cosmastech у https://github.com/laravel/framework/pull/58012 - [12.x] Додано можливість використовувати значення з плаваючою комою в допоміжних функціях тривалості для CarbonInterval від @SanderMuller у https://github.com/laravel/framework/pull/58006
- Додано методи whenTableHasIndex та whenTableDoesntHaveIndex у Builder від @jackbayliss у https://github.com/laravel/framework/pull/58005
- [12.x] Додано метод commandFileFinder і виключення тестових файлів з виявлення команд від @davidhemphill у https://github.com/laravel/framework/pull/58017
- [12.x] Виправлено несумісність Cache spy з кешем з мемоізацією від @faisuc у https://github.com/laravel/framework/pull/57996
- Додано підтримку параметрів --quiet та --silent у команду queue:work від @MatusBoa у https://github.com/laravel/framework/pull/58024
- [12.x] Поліпшено документування Blueprint з конкретними діапазонами значень для цілих та текстових стовпців від @nguyentranchung у https://github.com/laravel/framework/pull/58019
- [12.x] Сучасний підхід до типізації від @cosmastech у https://github.com/laravel/framework/pull/58037
- [12.x] Виправлено валідацію
requiredтаsometimesдля правилаPasswordвід @mrvipchien у https://github.com/laravel/framework/pull/58034 - [12.x] Додано підтримку як залежності для контейнера від @adrum у https://github.com/laravel/framework/pull/58026
- Виправлено автоматичне завантаження класу StringableObjectStub у tests/Support/SupportStringableTest.php від @angus-mcritchie у https://github.com/laravel/framework/pull/58030
- [12.x] Видалено виклики
optional()від @cosmastech у https://github.com/laravel/framework/pull/58027 - [12.x] Додано
newRequest()до Pool і Batch від @cosmastech у https://github.com/laravel/framework/pull/58038 - [12.x] Вирівняно документування Listener та додано одиничний тест для форми запиту від @miladev95 у https://github.com/laravel/framework/pull/58040
- [12.x] Додано попереджувальний хуку перед міграцією при налаштуванні баз даних у паралельних тестах від @philipheimboeck у https://github.com/laravel/framework/pull/58011
- [12.x] Підтримка PHPUnit 12.5 від @crynobone у https://github.com/laravel/framework/pull/58042
- [12.x] Додано підтримку Enums у замінах Translator від @hosni у https://github.com/laravel/framework/pull/58048
- [12.x] Виправлено одночасні запити
PendingRequest@pool()таbatch()від @cosmastech у https://github.com/laravel/framework/pull/57973 - [12.x] Новий компонент
illuminate/reflectionsзilluminate/supportвід @crynobone у https://github.com/laravel/framework/pull/58052 - Уніфікація описів параметрів опцій у командах черги від @jasonlbeggs у https://github.com/laravel/framework/pull/58058
- [12.x] Додано LICENSE, автоматичне закриття для PR та
.gitattributesдоilluminate/reflectionвід @crynobone у https://github.com/laravel/framework/pull/58055 - [12.x]
PendingRequest@withRequestContext()від @cosmastech у https://github.com/laravel/framework/pull/58054