Осторожнее с view composers! Как работают view composers в Laravel

Для тех, кто не знал как работают view composers! Разберем на примере как работает набор запросов к базе на получение категорий и как это делать правильно! #viewcomposers#laravel#cutcode --------------------------------------------------------------------------------- 🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇 ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - --------------------------------------------------------------------------------- Друзья хочу в этом ролике вас предостеречь от возможных ошибок и заодно рассказать как работают view composers для тех кто этого не знал. Мне часто пишут в личку с определенными проблемами и если капнуть глубже то оказывается что корень зла таится именно в этих view conposers и непонимание как они работают. Давайте взглянем на пример я его воспроизвел специально для этого ролика. У нас есть view сервис провайдер, есть View composer - categoryViewComposer. Если мы взглянем внутрь то там определенный набор запросов к базе на получение категорий. Не смотрите на название что они кэшат я для примера все кэши отключил чтобы видеть все наглядно. На что стоит обратить внимание? Что мы указали звездочку, то есть мы передаем якобы во все вьюхи как думает большинство новичков. Но в целом это правда только новички думают что это происходит единожды. Давайте откроем проект и посмотрим что у нас происходит. И мы видим что у нас 21 одинаковый запрос на категории. А если мы с вами при этом откроем проект где огромное количество вьюх, то у нас уже будет 446 запросов. Огромное количество и при этом непонятно откуда они сыпятся. В особенности если придет человек который не сильно знаком с Laravel, он здесь совсем сойдет с ума и сразу не поймет что дело в этих View Composers. А корень зла таится именно в непонимании. То что большинство думает что мы единожды передаем во все Вьюхи. Но друзья дело не так каждый раз когда мы рендерим вьюху мы вызываем этот колбек и передаем все что у нас там происходит и в нашем случае это набор запросов к базе. Что значит каждый раз когда мы рендерим? Давайте откроем проект, откроем например главную страницу и смотрите - мы рендерим главную страницу это раз вызов в View Composer и вызов всех запросов по категориям, далее экстендим layout - снова render, если перейдем в layout то у нас здесь подключение head, header и так далее. И это снова рендер blade view - поэтому такой набор одинаковых запросов. --------------------------------------------------------------------------------- 📹 делитесь этим видео с друзьями: 🔔 подпишитесь на YouTube-канал: 📼 Курс по Laravel с нуля: Осторожнее с view composers! Как работают view composers в Laravel --------------------------------------------------------------------------------- 🔗 наш сайт: 📱 Наш telegram-канал:
Back to Top