在视图中创建控制器


Creating controllers in Views

我有一个视图 - PageView - 其输出是多个ModuleView输出的串联。我希望始终初始化控制器中的视图(如有必要)和模型。这样做的原因是我发现根据控制器操作初始化给定视图很容易(许多模型与多个视图相关联,即:前端和后端视图)。

如果我在视图中初始化控制器,我会被斩首吗?如果是,您会建议使用什么方法来解决视图是其他视图串联的问题?

PHP代码

class PageView
{
    public function Output()
    {
        # $this->modules was set by a method called from PageController
        foreach ($this->modules as $module)
        {
            $module_controller = new ModuleController();
            # Will initialize ModuleModel (ID of 23 in constructor) and ModuleView, then call ModuleView->Output(ModuleModel->GetData())
            $module_controller->ShowFrontEnd(array('module_id' => 23));
        }
    }
}

该项目是 AJAX 繁重的,因此需要页面和模块控制器。目标是为那些在 PHP 中使用 MVC 模式有经验的人提供轻松的可扩展性和可读性。

是的,你将被斩首。控制器应该生成/处理视图,而不是相反。如果从视图初始化控制器,则它不再是 MVC。