На этот вопрос нельзя ответить точно.
Это зависит от стиля и соглашения.
Лучшие практики, которые я знаю, это «держать свой контроллер настолько тонким, насколько это возможно» и вместо этого использовать «толстую модель».
Модель должна содержать бизнес-логику и должна быть полностью работоспособной, но в независимом от среды состоянии. Что означает, например, не обрабатывать HTML там. Просто обменивайтесь определенными объектами данных.
Контролер отвечает за отображение всех URL-адресов в нужное место и все.
Наконец, представление преобразует данные из модели в форму, которую может просматривать пользователь (например, HTML).
Иногда принято обмениваться только данными между представлением / контроллером или моделью / контроллером. Я лично не вижу причин, почему бы не позволить модели взаимодействовать с контроллером, это дает большие преимущества, такие как предварительная обработка данных и т. Д.
Итак, чтобы углубиться в ваш вопрос:
Я думаю ваш контроллер должен загрузить модель и установить поток.
Затем контроллер должен установить правильное представление в слое презентации, который затем извлекает сообщения из модели и выводит их в хорошем виде.