我有一个视图 - 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。