上节课我们提到,现成的MVC框架有很多,最具有代表性的有thinkphp,YII ,为什么开要自己开发一个呢?
一个成熟的MVC框架需要10人以上的团队至少开发一年以上,我们开发的MVC框架只能是mini型。这样做的目的:
深入学习面向对象编程和MVC设计模式
下面我们设计一个最简单的MVC结构,用实际代码来表示模型、视图、控制器三者之间的关系 。
我们创建了四个php文件:
外层目录有一个index.php文件,它是程序的入口文件,有一个lib目录,里面分别创建了控制器、模型、视图三个文件
以下是各文件的参考代码
model.php
<?php
namespace lib;
//模型
class Model
{
//数据处理
public function getData()
{
return ['张三', '李四', '王五'];
}
}
view.php
<?php
namespace lib;
//视图
class View
{
//显示数据
public function display($data)
{
foreach ($data as $item) {
echo $item . '<br>';
}
}
}
controller.php
<?php
namespace lib;
use lib\Model;
use lib\View;
//控制器
class Controller
{
public function index()
{
//实例化模型对象
$m = new Model();
$data = $m->getData();
//实例化视图对象
$v = new View();
$v->display($data);
}
}
index.php
<?php
spl_autoload_register('autoload');
function autoload($class)
{
$file = __DIR__ . "\\" . strtolower($class) . '.php';
if (is_file($file)) {
require_once $file;
} else {
die($file . '文件不存在');
}
}
$c = new \lib\Controller();
$c->index();
认真阅读上面的代码,自己模仿一遍,弄清想模型、视图、控制器各自的分工。