【发布时间】:2009-10-12 03:48:43
【问题描述】:
我看到的所有关于 MVC 应该是什么以及如何使用的示例都使用类作为模型,类作为控制器,以及 HTML 模板作为视图。所有这些都由一个 index.php 脚本和 url 中的不同请求组成,以运行整个站点。
所以他们都是……
MODEL
class User{
function getUser($userID){
$sql = mysql_query('SELECT name......');
// more code.....
return $array
}
}
VIEW
<h2><?php echo $user['name']; ?></h2>
CONTROLLER
class Controller{
$userModel = new User;
$userInfo = $userModel->getUser($id);
$template = new Template('usertemplate.tpl');
$template->setVariables($userInfo);
$template->display();
}
我理解为什么模型是由简单地获取和保存数据的类组成的(尽管我假设类并不总是必需的并且可以使用函数)。我理解为什么模板主要由 HTML 组成。但我不明白为什么控制器是一个类。我假设控制器是一个程序脚本(比如 userprofile.php,它从模型中获取用户数据并将其发送到模板进行显示)。
另外,我想知道为什么我读过的每个教程都涉及 mod 重写,并使用带有请求的单个页面,如“index.php?user=1”或 index.php?news=3 到运行整个站点。像 user_profile.php?id=1 或 news.php?id=3 这样的单独页面有什么问题...
有人可以帮助我快速“教程”和一路上的解释。就像...如何使用 MVC 实现注册表单,什么会去哪里以及为什么?谢谢你
PS。还有哪些其他类型的设计模式
【问题讨论】:
-
好吧,至少 Samstyle PHP 框架不使用控制器类。相反,它只是普通的 PHP 脚本code.google.com/p/samstyle-php-framework
标签: php model-view-controller separation-of-concerns