Как правильно построить архитектуру в MVC?

Допустим мы имеет такой сайт - в нем есть верхнее меню, которое изменяется после обновления страницы. Данное меню прописано в главной (master) вьюхе. Так вот, по идее, что бы информация в меню обновлялась каждый раз, мне каждый раз в каждом контроллере (пусть это хоть список комментариев, хоть список друзей будет) надо будет передавать эту информацию, что ни есть удобно, может можно как нибудь выкрутиться? Проект делается на Laravel 5.1. И ещё, есть одна особенность, шаблонизатор blade не используется (требованте заказчика). Надеюсь я понятно объяснил : )
  • Вопрос задан
  • 390 просмотров
Решения вопроса 2
@rsi
software engineer
Для начала, блейд это просто обертка над php, и не использование его дает даже больше возможностей чем его использование, хоть и не так красиво выглядит.

Далее у вас два варианта:
1) Сделать как сказал DieZz, view->share('key', 'value') прописать это лучше всего в контролере от которого потом унаследовать все другие контроллеры.

2) Определить класс для управления меню и сделать его инжекцию в самой вьюхе. Далее вариант с блейдом, как сделать без блейда надеюсь разберетесь
@inject('metrics', 'App\Services\MetricsService')

<div>
    Monthly Revenue: {{ $metrics->monthlyRevenue() }}.
</div>


С одной стороны делать иньекции во вьюхе вроде как не красиво, с другой стороны шаблон, это не вью, контроллера своего у него нет. Короче холиварная тема, решать вам.
Ответ написан
Комментировать
DieZz
@DieZz
Скорее всего вам подойдет метод view->share('key', 'value')
Документация
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Astatroth
@Astatroth
Я тут случайно
Композер вам в помощь
Видео (англ.)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы