userinfo и mvc

ghost9

Новичок
Я недавно задумался: а как, собственно, реализовать получение информациии о пользователе, сделавшем текущий запрос, чтобы было труЪ с точки зрения mvc? Если push - будет слишком много однотипного кода:
PHP:
$userinfo = UserModel::findById($request->session['userid']);
$news = new NewsModel($userinfo, ....)........
А если poll - не труЪ, ибо модель сама не должна ничего знать о запросе, ей должен все данные сообщать контроллер. Сервис-локатор и DI туда же, с запросом должен работать только контроллер. Как бы вы решили таую абстрактную задачу в вакууме?
 

AmdY

Пью пиво
Команда форума
ghost9, я бы оставил как есть и пошёл бы пить пиво. Как только копи-паст детект начнёт бить тревогу сел бы и отрефакторил, код легко выносится в абстрактную фабрику или билдер.
 

ghost9

Новичок
ghost9, я бы оставил как есть и пошёл бы пить пиво. Как только копи-паст детект начнёт бить тревогу сел бы и отрефакторил, код легко выносится в абстрактную фабрику или билдер.
Это не практическая задача, а простое любопытство. Практические задачи обычно решаются быстрее и без лишней рефлексии, т.к. сроки не резиновые.

А почему не хранить юзера в сессии?
Кстати, а ведь сессия - не часть запроса, а persistent. Так что модель вполне может к ней обращаться.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
сессия - часть окружения, и модель к ней обращаться не должна, но можно сделать специальную модель, которая использует сессию как хранилище
 
Сверху