- Блог
- Витягування масивів з будь-якого типу даних за допомогою методу Arr::from у Laravel
Витягування масивів з будь-якого типу даних за допомогою методу Arr::from у Laravel
Оновлено: 14 червня, 2025
Метод Arr::from у Laravel відкриває нові можливості для роботи з різними типами даних, спрощуючи процес перетворення колекцій, об'єктів та інших структур в масиви. Як його ефективно використовувати в управлінні конфігураціями? Читайте далі, щоб дізнатися більше про цю потужну функцію
Новий метод Arr::from у Laravel пропонує єдиний підхід до перетворення колекцій, об'єктів та інших структур на масиви, розумно обробляючи різні типи вхідних даних
Перетворення різних типів даних на масиви:
```php
use Illuminate\Support\Arr;
// З колекцій
Arr::from(collect(['status' => 'active'])); // ['status' => 'active']
// З Jsonable об'єктів
Arr::from($jsonable); // Декодує через інтерфейс Jsonable
// З Arrayable об'єктів
Arr::from($arrayable); // Повертає через метод toArray()
```
Ось як це може виглядати в класі менеджера конфігурацій:
```php
class ConfigurationManager
{
public function processSettings($settings)
{
$array = Arr::from($settings);
return $this->validateSettings($array);
}
public function combineConfigurations(...$configs)
{
return collect($configs)
->map(fn($config) => Arr::from($config))
->reduce(fn($carry, $item) => array_merge($carry, $item), []);
}
public function sanitizeAndStore($configuration, array $schema)
{
$data = Arr::from($configuration);
$validator = Validator::make($data, $schema);
if ($validator->fails()) {
throw new ValidationException($validator);
}
return $data;
}
}
$manager = new ConfigurationManager();
$result = $manager->processSettings(collect(['cache' => 'redis']));
$combined = $manager->combineConfigurations(
collect(['database' => 'mysql']),
new DatabaseConfig(),
$cacheSettings
);
```
Метод Arr::from забезпечує єдиний інтерфейс для витягування масивів, усуваючи потребу в перевірці типів даних або викликах різних методів залежно від структури вхідних даних