Елегантна обробка вкладених масивів за допомогою допоміжної функції fluent() у Laravel

Перекладено ШІ 0 Laravel News 20 червня, 2025

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

Laravel запроваджує функцію-утиліту fluent() для зручнішої роботи з мультимірними масивами, пропонуючи інтуїтивний спосіб доступу та маніпуляцій з вкладеними структурами даних

Використання fluent-утиліти для роботи з мультимірними масивами виглядає так:

$config = [
    'app' => [
        'name' => 'TaskManager',
        'settings' => [
            'timezone' => 'UTC',
            'locale' => 'en',
        ]
    ],
    'features' => [
        ['name' => 'Analytics'],
        ['name' => 'Reports']
    ]
];
 
fluent($config)->app;
fluent($config)->get('app.name');
fluent($config)->collect('features')->pluck('name');
fluent($config)->scope('app.settings')->toJson();

Ось практичний варіант реалізації для побудови відповіді API:

class ApiResponseBuilder extends Controller
{
    public function buildResponse(Product $product)
    {
        $responseData = [
            'product' => [
                'details' => [
                    'title' => $product->title,
                    'price' => $product->price,
                    'created' => $product->created_at
                ],
                'options' => [
                    'variants' => $product->variant_settings,
                    'shipping' => $product->shipping_options
                ]
            ],
            'metrics' => [
                'views' => $product->views->count(),
                'orders' => $product->orders->count(),
                'reviews' => $product->reviews->count()
            ]
        ];
 
        $response = fluent($responseData);
 
        return response()->json([
            'title' => $response->get('product.details.title'),
            'price' => $response->get('product.details.price'),
            'shipping' => $response->get('product.options.shipping'),
            'analytics' => $response->scope('metrics')->toArray(),
            'variants' => $response
                ->collect('product.options.variants')
                ->filter(fn($available) => $available)
                ->keys()
        ]);
    }
}

Утиліта fluent значно спрощує читання та обслуговування складних операцій з масивами

Популярні

Інше, що варто прочитати

41 Оновлено 02 червня, 2026

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

53 Оновлено 02 червня, 2026

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

49 Оновлено 02 червня, 2026

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту