在视图中创建控制器

时间:2015-01-07 20:01:29

标签: php model-view-controller

我有一个视图 - 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));
        }
    }
}

该项目很重,因此需要页面和模块控制器。目标是让那些对PHP中的MVC模式有经验的人提供简单的可扩展性和可读性。

1 个答案:

答案 0 :(得分:0)

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