Команда Laravel випустила версію v12.14.0, яка включає нові можливості: метод Arr::from()
, метод контейнера currentlyResolving()
, нові методи except
для класу Context та багато іншого:
Сергій Данілченко додав метод Arr::from()
, який отримує базовий масив елементів з переданого аргументу:
use Illuminate\Support\Arr;
Arr::from(collect(['name' => 'Laravel'])); // ['name' => 'Laravel']
Arr::from($jsonable); // Декодує об'єктні дані через `Jsonable` в масив
Arr::from($arrayable); // Повертає масив за допомогою методу `toArray()` об'єкта
Деталі можна знайти у Pull Request #55715.
Володя Куршудян додав методи 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
, який повертає зв'язок, який контейнер зараз розв'язує:
#[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:
useCurrent
для типів колонок date і year від @nicholasbrantley (#55619)Http::preventStrayRequests
під час використання Http::pool
від @LeTamanoir (#55689)except
та exceptHidden
до класу Context
від @xurshudyan (#55692)currentlyResolving
в контейнері від @jrseliga (#55684)currentlyResolving
контейнера від @jrseliga (#55694)morphClass
для зв'язків morph to many у getCurrentlyAttachedPivots
від @amir9480 (#55721)