Метод Arr::from() у Laravel 12.14

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 15 травня, 2025
Досліджуйте новини останнього оновлення Laravel версії 12.14.0, яке пропонує користувачам потужні нові функції, включаючи методи для зручного маніпулювання масивами та контекстами. Які саме інновації укріплять вашу розробницьку практику? Читайте далі, щоб дізнатися більше

Команда Laravel випустила версію v12.14.0, яка включає нові можливості: метод Arr::from(), метод контейнера currentlyResolving(), нові методи except для класу Context та багато іншого:

# Метод Arr::from()

Сергій Данілченко додав метод Arr::from(), який отримує базовий масив елементів з переданого аргументу:

use Illuminate\Support\Arr;

Arr::from(collect(['name' => 'Laravel'])); // ['name' => 'Laravel']
Arr::from($jsonable); // Декодує об'єктні дані через `Jsonable` в масив
Arr::from($arrayable); // Повертає масив за допомогою методу `toArray()` об'єкта

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

# Нові методи Context

Володя Куршудян додав методи except() та exceptHidden() до класу Context, що дозволяє отримувати всі значення, окрім зазначених ключів:

Context::add('user_id', 42);
Context::add('request_id', 'req-abc123');
Context::add('ip_address', '192.168.0.1');
Context::add('sensitive_token', 'secret');

$logData = Context::except(['sensitive_token']);

// Результат:
[
    'user_id' => 42,
    'request_id' => 'req-abc123',
    'ip_address' => '192.168.0.1',
]

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

# Утиліта currentlyResolving в контейнері

Джастін Селіга додав метод currentlyResolving, який повертає зв'язок, який контейнер зараз розв'язує:

#[Attribute(Attribute::TARGET_PARAMETER)]
class RegisteredFor implements ContextualAttribute
{
    public static function resolve(self $attribute, Container $container): array
    {
        $resolving = $container->currentlyResolving(); // Production::class

        return resolve(Registrar::class)->for($resolving);
    }
}

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

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

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

# v12.14.0