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

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

  

Как же всё-таки правильно это сделать, какие способы решения этой задачи существуют? И станет ли лучше, если я реализую тот же самый глобальный статик класс в виде Singleton? 

 MVC это про идею, не про реализацию.   

Вы можете реализовать через глобальный контейнер, если приложение не предполагается развивать и поддерживать большой командой. Можете упороться и сделать гибкую, продуманную конфигурацию оркестрации контроллерами, моделями и вьюхами и получить свой вариант Симфони. Техническая правильность решений уступает целесообразности их реализации.