Встановлення даних на флюентному екземплярі в Laravel 11.36

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 19 грудня, 2024
Цього тижня командою Laravel було випущено оновлення v11.36, яке приносить нові можливості, зокрема ланцюговий метод `Fluent::set()` і глобальний псевдонім для класу `Uri`. Долучайтеся до читання, щоб дізнатися більше про ці цікаві вдосконалення та про те, як вони можуть покращити вашу роботу з Laravel!

Цього тижня команда Laravel випустила версію v11.36, яка містить метод Fluent::set(), глобальний псевдонім для нового класу Uri та інші покращення.

# Метод Fluent::set()

Стів Бауман додав метод Fluent::set(), який дозволяє встановлювати глибоко вкладені атрибути за допомогою ланцюгового виклику та нотації з крапкою:

$fluent = new Fluent;

// Встановлення основних атрибутів
$fluent->set('product', 'iPhone')
       ->set('version', 15)
       ->set('developer', 'Apple');

// Використання нотації з крапкою для вкладених атрибутів
$fluent->set('specs.color', 'Space Black')
       ->set('specs.storage', '256GB')
       ->set('specs.price.usd', 1199);

// Отримання значень
echo $fluent->product; // "iPhone"
echo $fluent->specs['color']; // "Space Black"
echo $fluent->specs['price']['usd']; // 1199

// Отримання значень за допомогою get з нотацією з крапкою
echo $fluent->get('specs.color'); // "Space Black"
echo $fluent->get('specs.price.usd'); // 1199

Реалізація використовує функцію Laravel data_set(), яка є корисним інструментом для роботи з вкладеними масивами:

$data = ['products' => ['desk' => ['price' => 100]]];

data_set($data, 'products.desk.price', 200);
data_get($data, 'products.desk.price'); // 200

Деталі про встановлення даних у екземплярі Fluent можна знайти у Pull Request #53946.

# Uri та UriQueryString реалізують Stringable

Люк Кузміш додав інтерфейс Stringable для класів Uri та UriQueryString. Ці класи вже реалізують інтерфейс Stringable, що включає метод __toString():

use Illuminate\Support\Uri;

$uri = Uri::of('https://laravel.com')
    ->withQuery(['name' => 'Taylor'])
    ->withPath('/docs/installation')
    ->withFragment('hello-world');

// https://laravel.com/docs/installation?name=Taylor#hello-world
(string) $uri;

Дізнайтеся більше про можливості розбору та модифікації URI у публікації про версію Laravel v11.35.

# Uri додано як глобальний псевдонім

Джейсон Маккрейрі додав новий клас Uri як глобальний псевдонім за замовчуванням. Тепер ви можете безпосередньо звертатися до класу Uri без вказівки простору імен Illuminate\Support:

$uri = Uri::of('https://laravel.com')->withQuery(['name' => 'Taylor']);

Деталі можна знайти у Pull Request #53884.

# Примітки до випуску

Повний список нових функцій та оновлень ви можете знайти нижче, а також переглянути різницю між версіями 11.35.0 та 11.36.0 на GitHub. Наступні примітки про випуск прямо з changelog:

# v11.36.0