Я бы согласился, что базовый контроллер довольно распространен, , но я не уверен, что это правильное решение для того, что вы описываете.
Не зная, что именно является общим, это довольно сложно выяснить, но весь бит вашего базового контроллера, зная специфику о контроллерах, наследующих его, пахнет немного.
Вот пара вещей, на которые стоит обратить внимание.
- Композиция почти всегда лучше наследования. Отличная статья об этом
- Базовый контроллер должен иметь общие методы / свойства, например, у моего есть некоторые свойства получения текущего пользователя и универсальный метод для вызова внешних служб, но не конкретные вещи от наследования контроллеров. Эмпирическое правило, если оно не требуется более чем одному контроллеру, чем, вероятно, не годится базовая реализация.
- Возможно, что некоторые новые функции MVC 2 могут решить, что вы делаете. Посмотрите на действие рендера.
Как и в любом программном обеспечении, существует множество способов решения проблемы, поэтому, в конечном счете, сделайте это так, как это будет наиболее разумно для вас и вашей команды.