Управління глобальними даними в Laravel

Перекладено ШІ 0 Laravel News 10 січня, 2025

Метод View::share в Laravel — це потужний інструмент для забезпечення доступу до даних у всіх ваших видах, що робить його ідеальним для управління глобальними налаштуваннями та уподобаннями користувачів. Дізнайтеся, як цей метод допомагає зменшити повторення коду і організувати вашу розробку в статті!

Метод View::share у Laravel надає простий спосіб зробити дані доступними для всіх представлень вашого застосунку. Це ідеально підходить для роботи з глобальними налаштуваннями, уподобаннями користувачів чи загальними елементами інтерфейсу.

Під час розробки застосунків на Laravel часто виникає потреба в даних, які мають бути доступні у всіх (або більшості) представленнях — таких як інформація про користувача, налаштування застосунку, навігаційні меню чи вміст футера. Слідуючи традиційному підходу, передача цих даних від кожного контролера до кожного представлення призведе до повторення коду. Метод View::share вирішує цю проблему, дозволяючи визначити дані один раз і автоматично зробити їх доступними у всіх представленнях.

Ця функція особливо корисна для:

  • Глобальних налаштувань (ім'я сайту, контактна інформація)
  • Даних користувача (повідомлення, уподобання)
  • Загальних елементів інтерфейсу (навгаційні меню, посилання в футері)
  • Інформації про стан системи (режими обслуговування, оголошення)
use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        View::share('site_name', config('app.name'));
    }
}

Розгляньмо практичний приклад обміну конфігурацією та уподобаннями користувача в рамках застосунку:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use App\Services\ThemeService;
use App\Services\MenuService;

class ViewServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        // Пропустити для консольних команд
        if (!app()->runningInConsole()) {
            // Обмін налаштуваннями застосунку
            View::share([
                'app_version' => config('app.version'),
                'contact_email' => config('app.contact_email'),
                'social_links' => [
                    'twitter' => config('social.twitter'),
                    'github' => config('social.github'),
                    'linkedin' => config('social.linkedin')
                ]
            ]);

            // Обмін даними авторизованого користувача
            View::composer('*', function ($view) {
                if ($user = auth()->user()) {
                    $view->with([
                        'user_theme' => app(ThemeService::class)->getUserTheme($user),
                        'sidebar_menu' => app(MenuService::class)->getMenuItems($user),
                        'notifications_count' => $user->unreadNotifications()->count()
                    ]);
                }
            });
        }
    }
}

View::share спрощує процес надання даних на глобальному рівні, зберігаючи організованість та зручність вашого коду

Популярні

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

10 Оновлено 01 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!

15 Оновлено 01 червня, 2026

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!

83 Оновлено 01 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?