Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:其实这种外部对象的注入, 之前咱们已经接触过了, 只是现在才知道为什么要这么做罢了
<?php
namespace mvc_demo;
class UserM
{
public function getData()
{
return(new \PDO('mysql:host=localhost;dbname=phpedu','root','root'))
->query('SELECT * FROM `user` LIMIT 12')
->fetchAll(\PDO::FETCH_ASSOC);
}
}
<?php
namespace mvc_demo;
class UserV
{
public function fatch($data)
{
$table = printf('|id|姓名|状态|创建时间|<br>');
$table .= printf('|--|--|--|--|<br>');
foreach ($data as $user) {
$date = date('Y年m月d日', $user['create_time']);
$table .= printf('|%s|%s|%s|%s|<br>', $user['id'], $user['name'], $user['status'], $date);
}
return $table;
}
}
<?php
namespace mvc_demo;
require 'UserM.php';
require 'UserV.php';
class Contraller1
{
public function index()
{
//获取数据
$model = new UserM;
$data = $model->getData();
//渲染模板
$view = new UserV;
return $view->fatch($data);
}
}
//实例化控制器类
$contraller = new Contraller1();
echo $contraller->index();
<?php
namespace mvc_demo;
require 'UserM.php';
require 'UserV.php';
class Contraller2
{
public function index(UserM $model,UserV $view)
{
//获取数据
$data = $model->getData();
//渲染模板
return $view->fatch($data);
}
}
$model = new UserM;
$view = new UserV;
//实例化控制器类
$contraller = new Contraller2();
echo $contraller->index($model, $view);
<?php
namespace mvc_demo;
// 控制器依赖注入点改到构造方法, 实现对外部依赖对象的共享
require 'UserM.php';
require 'UserV.php';
class Contraller3
{
private $model;
private $view;
public function __construct(UserM $model,UserV $view)
{
$this->model = $model;
$this->view = $view;
}
public function index()
{
//获取数据
$data = $this->model->getData();
//渲染模板
return $this->view->fatch($data);
}
}
$model = new UserM;
$view = new UserV;
//实例化控制器类
$contraller = new Contraller3($model, $view);
echo $contraller->index();
id | 姓名 | 状态 | 创建时间 |
---|---|---|---|
1 | admin | 1 | 2020年05月09日 |
2 | 张三 | 1 | 2020年05月09日 |
3 | 李四 | 1 | 2020年05月09日 |
4 | 王老师 | 1 | 2020年05月09日 |
5 | 刘六 | 1 | 2020年05月09日 |
6 | 赵大 | 0 | 2020年05月09日 |
7 | 钱二 | 0 | 2020年05月09日 |
10 | wang | 1 | 2020年05月11日 |
11 | admin | 1 | 2020年05月09日 |
12 | 张三 | 1 | 2020年05月09日 |
13 | 李四 | 1 | 2020年05月09日 |
14 | 王老师 | 1 | 2020年05月09日 |