Задать вопрос
@66demon666
Сетевой админ, АТС-админ

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

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

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

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

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