Попередня підготовка даних у Laravel за допомогою View Creators

3
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Відкрийте для себе, як View Creators у Laravel можуть оптимізувати підготовку даних та підвищити продуктивність вашого застосунку. Чи готові ви дізнатися, як вони допоможуть у створенні динамічного меню вашої програми?

Креатори Views у Laravel дозволяють вам готувати дані одразу після створення виду, ще на етапі до роботи View Composers. Це робить їх ідеальними для налаштування необхідних даних або оптимізації продуктивності.

use Illuminate\Support\Facades\View;
// Реєстрація View Creator
View::creator('dashboard', DashboardCreator::class);

Розглянемо практичний приклад управління динамічним меню програми:

<?php

namespace App\View\Creators;

use App\Services\MenuService;
use Illuminate\View\View;
use Illuminate\Support\Facades\Auth;

class ApplicationMenuCreator
{
    protected $menuService;

    public function __construct(MenuService $menuService)
    {
        $this->menuService = $menuService;
    }

    public function create(View $view)
    {
        $user = Auth::user();

        $view->with([
            'mainMenu' => $this->menuService->getMainMenu($user),
            'quickActions' => $this->menuService->getQuickActions($user),
            'recentItems' => $this->menuService->getRecentItems($user),
            'notifications' => $this->menuService->getPendingNotifications($user)
        ]);
    }
}

// У вашому AppServiceProvider
public function boot()
{
    View::creator('layouts.app', ApplicationMenuCreator::class);
}

// Використання в layouts/app.blade.php
<div class="sidebar">
    <nav>
        @foreach($mainMenu as $menuItem)
            <a href="{{ $menuItem['url'] }}" class="{{ $menuItem['active'] ? 'active' : '' }}">
                {{ $menuItem['label'] }}
            </a>
        @endforeach
    </nav>

    @if(count($quickActions))
        <div class="quick-actions">
            @foreach($quickActions as $action)
                <button onclick="handleAction('{{ $action['id'] }}')">
                    {{ $action['label'] }}
                </button>
            @endforeach
        </div>
    @endif
</div>

Креатори Views забезпечують спрощену підготовку даних для ваших видів, гарантуючи доступність критично важливої інформації відразу після створення виду

Популярні

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

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

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!