У Laravel 12.45 додано JSON:API Resource для виводу ресурсів за специфікацією JSON:API.

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 04 березня, 2026
У релізі Laravel 12.45 з’явилися JsonApiResource, AsBinary cast та хелпер для вкладень із хмарного сховища. Хочете дізнатися, як ці зміни спростять роботу з API, байтовими ідентифікаторами й керуванням сесіями та кешем?

Команда Laravel випустила версію 12.45 з JsonApiResource, класом касту AsBinary, помічником для вкладень із хмарного сховища та іншими оновленнями.

JSON:API ресурс

Mior Muhammad Zaki додав JsonApiResource, який дозволяє виводити API-ресурси за специфікацією JSON:API замість звичного JsonResource:

use Illuminate\Http\Resources\JsonApi\JsonApiResource;
 
class UserResource extends JsonApiResource {}

Створювати JSON API-ресурси можна командою make:resource з прапорцем --json-api:

php artisan make:resource PostResource --json-api

Деталі реалізації — Pull Request #57571.

Клас AsBinary для кастів

Kacper Pruszyński додав каст AsBinary, який зберігає значення у вигляді бінарних байтів і повертає їх у PHP як рядок:

protected function casts(): array
{
    return [
        'id' => AsBinary::uuid(isRequired: true),
        'public_id' => AsBinary::ulid(), // optional by default
        'custom' => AsBinary::of('xor1', false),
    ];
}

Деталі реалізації — Pull Request #58254.

Помічник для вкладень із хмарного сховища

Philo Hermans додав метод вкладення fromCloudStorage(), який спрощує додавання до листів файлів із хмари:

// Before:
Attachment::fromStorageDisk(Storage::getDefaultCloudDriver(), $attachment->path);
 
// After:
Attachment::fromCloudStorage($attachment->path);

Деталі реалізації — Pull Request #58201.

Підтримка BackedEnum для ключів сесії

Andy Hinkle додав підтримку enum для ключів сесії — тепер можна передавати сам enum замість рядкового значення. Це узгоджується з іншими частинами фреймворка:

enum CheckoutSession: string
{
    case Cart = 'checkout.cart';
    case ShippingAddress = 'checkout.shipping_address';
    case PaymentMethod = 'checkout.payment_method';
}
 
// Before
session()->put(CheckoutSession::Cart->value, $items);
session()->get(CheckoutSession::Cart->value);
 
// After (>=12.45)
session()->put(CheckoutSession::Cart, $items);
session()->get(CheckoutSession::Cart);

Деталі реалізації — Pull Request #58241.

BackedEnum для ключів кешу

За аналогією з підтримкою enum у сесіях, Jack Bayliss додав BackedEnum для ключів кешу:

// Before
Cache::put(AnalyticalGraph::PROFILE->value, $result);
 
// After
Cache::put(AnalyticalGraph::PROFILE, $result);

Деталі реалізації — Pull Request #58246.

Позначити email як непідтверджений

Ali Khosrojerdi додав метод markEmailAsUnverified() як доповнення до markEmailAsVerified() для скидання підтвердження email у записі моделі:

$user->markEmailAsUnverified();

Деталі реалізації — Pull Request #58255.

Прапорець --readable для env:encrypt (видимі імена ключів)

Додає прапорець --readable до команди env:encrypt, який генерує по-рядковий зашифрований формат: імена змінних залишаються видимими, а значення шифруються. Це дозволяє бачити, які змінні існують, не розкриваючи конфіденційні дані, і полегшує перегляд пул-реквестів — рев'ювери бачать, які змінні додано, видалено або перейменовано, без дешифрування файлу.

Деталі реалізації — Pull Request #58262.

Нотатки релізу v12.45.0

Повний перелік нових можливостей і змін дивіться нижче, а також diff між 12.44.0 та 12.45.0 на GitHub. Наступні нотатки взяті з changelog:

Зміни v12.45.0

Популярні

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті