Maison >développement back-end >tutoriel php >Préparation des données de vue précoce avec Laravel View Creators

Préparation des données de vue précoce avec Laravel View Creators

Emily Anne Brown
Emily Anne Brownoriginal
2025-03-06 02:43:09178parcourir

Early View Data Preparation with Laravel View Creators

Laravel View Creator vous permet de préparer des données immédiatement après l'instanciation, plus tôt que le combinateur de vue, ce qui les rend idéaux pour configurer les données de vue nécessaires ou optimiser les performances.

Examinons un exemple pratique de la gestion des menus d'application dynamique:

Tout d'abord, enregistrez le créateur de la vue:

use Illuminate\Support\Facades\View;
// 注册视图创建器
View::creator('dashboard', DashboardCreator::class);

Ensuite, définissez la classe Créateur View:

<?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)
        ]);
    }
}

Enregistrer le créateur de la vue dans votre AppServiceProvider:

// 在你的 AppServiceProvider
public function boot()
{
    View::creator('layouts.app', ApplicationMenuCreator::class);
}

Enfin, utilisez des données dans layouts/app.blade.php:

<div class="sidebar">
    <nav>
        @foreach($mainMenu as $menuItem)
            <a class="https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'active'] ? 'active' : '' }}" href="https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'url'%5D%20%7D%7D">
                https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'label'] }}
            </a>
        @endforeach
    </nav>

    @if(count($quickActions))
        <div class="quick-actions">
            @foreach($quickActions as $action)

                    {{ $action['label'] }}

            @endforeach
        </div>
    @endif
</div>

View Creator fournit une préparation précoce de données pour vos vues, en vous garantissant que des données critiques sont disponibles immédiatement après l'instanciation de la vue. Cela permet d'améliorer les performances des applications et la maintenabilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn