我搜索并阅读了有关mvc的信息。我理解MVC。我只是坚持开始。如果我能够做到这一点,我会继续下去。但是一旦我开始,作家就会抛出一些他们无法解释的东西。例如,他们将展示一个模型扩展一些类,但他们从不向您展示该类或不解释它。我知道在SO上已经有人问过这个问题,但它似乎太快会降低复杂性。
是否可以只有一个模型,一个控制器和一个视图,并以此为例进行说明?我是不是太简单了?
我已经看过各种预制框架,codeigniter,wigbi,skinnymvc等。我现在不想使用它们。我理解OOP和OOD。无论出于何种原因,我都无法把它放在一起。感谢任何显示模型,控制器,视图,一个系统,三个页面的内容,这些内容并非秘密地伪装成简单的三个巨大页面,可能只是来自用户的select *。如果重要,我正在尝试使用PDO。
答案 0 :(得分:4)
模型不是对象或类,而是图层。它是两层之一,另一层是表示层(其中最显着的是控制器和视图)。最简单的例子是:
$serviceFactory = new ServiceFactory( $pdo );
$view = new FooView( $serviceFactory, $pathToTempaltes );
$controller = new FooController( $view, $serviceFactory );
$controller->someCommand();
$view->produceResponse();
这个例子假设模型层非常简化,没有抽象分离域对象和数据抽象结构。
答案 1 :(得分:0)
把它想象成3张纸叠在一起。前面的纸张(视图)显示用户界面,后面的纸张(模型)从数据库获取信息,中间的纸张(控制器)将信息从后面的纸张传递到前面的一块论文。
答案 2 :(得分:0)
最简单的例子。不要在此构建应用程序。
function model() {
return array('some'=>'random','prefix'=>'Hello');
}
function view($data) {
header('content-type: text/html;charset=utf-8');
echo "<html><head>title</head><body>",htmlspecialchars($data['greeting']),"</body></html>";
}
function controller() {
$name = $_GET['name'];
$modeldata = model();
$viewdata = array('greeting'=> "{$modeldata['prefix']} {$name}");
view($viewdata);
}
controller();