Метод 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, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу