【发布时间】:2011-05-06 16:30:56
【问题描述】:
现在我已经拆分了模型,但我的控制器和视图仍然组合在一个 12k 行的文件中。我一直在寻求为此创建一个真正的 MVC 系统,拆分视图,但是在寻找要拆分的内容时,我注意到我的控制器正在做很多可能属于模型的工作。
例如,假设我有...
if (isset($_POST['write'])) {
$obj = $objManager->get($_POST['id']);
$obj->setFoo($_POST['foo'])
->setBar($_POST['bar']);
$objManager->write($obj);
echo ...
}
...所以我们知道 echo 之后的内容进入了视图模板。经理是我的榜样。所以我的问题是,我是否从 $_POST 读取所有数据并在控制器中设置数据?还是我以某种方式将其放入模型中,就像这样...
if (isset($_POST['write'])) {
$objManager->update($_POST);
echo ...
}
...update() 基本上做同样的事情,设置变量并保存事物。
【问题讨论】:
-
控制器中有
$_POST和update() 和write() 是可以的,但是,您可以将回声移出,并将它们严格地放在您的视图中 -
控制器通常会做所有的数据修改,模型有我相信的数据库结构,视图会做所有关于以最终形式显示数据的事情。
标签: php model-view-controller separation-of-concerns