Как прокинуть Request URI в View?

Архитектура приложения следующая:

1. Front controller разбирает адрес запроса и выполняет роутинг - создаёт нужный контроллер и вызывает нужный метод с определёнными параметрами.
2. Контроллер подгружает данные из модели и помещает их в объект-контейнер Response, который затем передаётся нужному методу VIew.
3. View разбирает данные из Response, помещая их в нужные переменные подгружаемых впоследствии шаблонов. Кое-что также берётся из настроек текущего модуля, подгружаемых в конструкторе View.

Всё отлично работает, но есть один параметр, из-за которого у меня уже мозг кипит - это $_SERVER['REQUEST_URI'] - например, в зависимости от текущего URL должны затемняться кнопки меню (отрисовщик меню - отдельный объект). Массив $_SERVER хранится в реестре RequestRegistry. C запросом у меня работает только контроллер, потому обращаться к реестру-синглтону внутри View - нелогично. Помещать current_uri в Response в каждом методе контроллера тоже не лучшая идея - так как в Request только данные из Модели, т. е. из БД, да и это же копипаст (т. к. в каждом методе каждого контроллера будет). Записывать это значение в конструкторе контроллера - не комильфо, насколько я знаю.

Что же делать? Как View должен получать такие данные из запроса? Чтоб это было и аккуратно, и логично.

P. S. Та же проблема и с DOCUMENT_ROOT.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
Writerim
@Writerim
Заполнить позже...
(отрисовщик меню - отдельный объект)

Так в нем нельзя что ли получить все глобальные переменные, которые нужны.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽