Надо определиться с терминологией, я ж говорю.

Веб приложения можно строить по-разному.
У меня то, что здесь называют контроллер (а я, окончательно запутавшись во всех терминах, назвал тупейше Page), выглядит в простейшем случае так примерно:
PHP:
class FooPage extends BasePage {
public function actionDefault() {
$FooModel = (new FooModel)->loadById($this->Request->Args->id);
$this->getView()->bind('Foo', $FooModel);
return $this->getView()->renderTemplate('foo.tpl');
}
}
В случае наличия форм, обработки POST-а - побольше.