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

0
Перекладено ШІ
Оригінал: 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

Популярні

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше

Logomark Logotype

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

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