Метод 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 спрощує процес надання даних на глобальному рівні, зберігаючи організованість та зручність вашого коду
Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!
Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення