Контроллер в MVC, как правило, является самой большой частью вашей кодовой базы. Так что, если беспокоиться о том, что он станет слишком большим, этого и следовало ожидать.
Однако при использовании MVC вы обычно хотите, чтобы Model-View-Controller имел отношение 1 к 1. Если у вас есть страница about, вам нужен контроллер специально для этого представления и действий, связанных с тем, что вы можете делать на этой странице. Ответ может заключаться в загрузке другого представления, и в этом случае другой контроллер будет реагировать на события, связанные с этим. Модель может быть общей для контроллера, но вы не хотите, чтобы какие-либо части вашего представления знали что-либо о вашей модели, иначе она сломает MVC, а контроллер - это элемент, который функционирует как клей.
Если вы действительно делаете что-то с PHP, как упоминал dtroy, это, вероятно, поможет. К сожалению, я пришел из опыта работы с MVC на iPhone. Та же концепция, хотя все вокруг.
В итоге, хотя:
Если вы возлагаете на контроллер ответственность только за действия, которые могут происходить в данном представлении, например, за нажатия кнопок и т. Д., Это должно помочь не допустить, чтобы ваш контроллер стал слишком большим и громоздким.
Edit:
Я забыл упомянуть в ответ на ваше беспокойство, которое я не рассмотрел. Чтобы помочь, например, с «Взрывом контроллера», вы можете не обязательно создавать контроллер для каждой страницы, но по одному для каждого типа представления. Например, у вас могут быть AboutViewController и ContentViewController и, возможно, loginViewController. AboutView и LoginView будут довольно уникальными, но если вы сможете повторно использовать ваш contentView. Поэтому, если кто-то запросит что-то о «виджетах», ваш контентный вид будет просто отображать информацию о виджетах, полученных из вашей модели, и отображать ее в соответствующем месте, определенном вашим представлением. затем, когда пользователь запрашивает что-то о «зубчатых колесах», вы можете повторно использовать один и тот же ContentViewController для одинакового отображения различной информации.