@66demon666

Как в MVC правильно связать Controller и Model?

Здравствуйте! В процессе написания бота вк пришел таки к структуре MVC, во многом оглядываясь на Yii2, поэтому возник вопрос, как же связать все компоненты между собой? Например, запрос попадает в индексную страницу, где запускается экземпляр приложения App, который, в свою очередь, вызывает внутри себя же метод, соответствующий типу Callback-события (например, метод message_new). Класс App содержит внутри себя необходимые классы и конфиги. Так как мое приложение основано на сообщениях-командах, то в методе message_new я разбираю, что же там пришло и уже начинаю классический роутинг, то есть ищу контроллер и вызываю, и тут собственно проблема: как передать controller-у, да и модели экземпляр класса? В Yii2 это реализовано, как я понял, глобальным контейнером со статическим свойством $app, но я читал что глобальный доступ это плохо.

Как же всё-таки правильно это сделать, какие способы решения этой задачи существуют? И станет ли лучше, если я реализую тот же самый глобальный статик класс в виде Singleton?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Decadal
@Decadal
MVC это про идею, не про реализацию.
Вы можете реализовать через глобальный контейнер, если приложение не предполагается развивать и поддерживать большой командой. Можете упороться и сделать гибкую, продуманную конфигурацию оркестрации контроллерами, моделями и вьюхами и получить свой вариант Симфони. Техническая правильность решений уступает целесообразности их реализации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
QTL Нур-Султан (Астана)
от 60 000 до 130 000 ₽
от 80 000 до 120 000 ₽
Hemmersbach Санкт-Петербург
До 200 000 ₽
26 нояб. 2020, в 06:58
45000 руб./за проект
26 нояб. 2020, в 02:56
10000 руб./за проект
26 нояб. 2020, в 00:27
500 руб./в час