Как прокинуть 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
Заполнить позже...
(отрисовщик меню - отдельный объект)

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

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

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