MVC, как обеспечивать независимость классов друг от друга?
Всем привет! Помогите разобраться плз.
Контроллер Videos получил запрос от пользователя, что тот хочет открыть страницу с видео. Контроллер посылает запрос в модель $modelVideo->getVideoFromID($video_id)
А модель возвращает данные (массив) об нужном видео, и вроде все хорошо, но нужно еще получить данные об авторе, который загрузил это видео и данные о лайках и дазлайках.
На ум приходит то, что в модели, при создании запроса к БД, нужно сделать LEFT JOIN и получить данные о пользователе. Но ведь в таком случае мы нарушаем правило о том, что у каждая модель работает только со своей таблицей базы данных, в общем мы делаем зависимой модель видео от таблицы users.
Другой вариант - после возвращения данных о видео в контроллер, взять ID пользователя, загрузившего видео и обратиться к модели Users $modelUsers->getUsersFromID($author_id)
И мы получим данные об авторе. Но в таком случае мы делаем зависимым контроллер Videos от модели Users
Как справиться с этой задачей? Может у меня изначально какая-то не правильная логика?
Но дальше больше проблем... Из данных о видео мы знаем количество лайков и дизлайков, поэтому нам нужно построить кнопки и при этом проверить голосовал ли текущий пользователь за это видео. А значит снова обратиться к "стороннему" классу Likes, передав ему ID видео, количество лайков и дизлайков (ID обратившегося пользователя он возьмет из $_SESSION['uid']) ну и так мы получим кнопки, но теперь контроллер Videos зависит еще и от кнопок.
Либо, у меня еще есть мысль, но я не правильно понял, что такое переплетение кода и то, что я описал - вполне нормально?