一个型号,一个视图,一个控制器。有没有非常简单的方法在一个例子中显示这个?

时间:2012-10-12 15:53:47

标签: php model-view-controller iis-7

我搜索并阅读了有关mvc的信息。我理解MVC。我只是坚持开始。如果我能够做到这一点,我会继续下去。但是一旦我开始,作家就会抛出一些他们无法解释的东西。例如,他们将展示一个模型扩展一些类,但他们从不向您展示该类或不解释它。我知道在SO上已经有人问过这个问题,但它似乎太快会降低复杂性。

是否可以只有一个模型,一个控制器和一个视图,并以此为例进行说明?我是不是太简单了?

我已经看过各种预制框架,codeigniter,wigbi,skinnymvc等。我现在不想使用它们。我理解OOP和OOD。无论出于何种原因,我都无法把它放在一起。感谢任何显示模型,控制器,视图,一个系统,三个页面的内容,这些内容并非秘密地伪装成简单的三个巨大页面,可能只是来自用户的select *。如果重要,我正在尝试使用PDO。

3 个答案:

答案 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();