1.首先效果图
2.模型类和视图类代码
模型类
<?php
namespace mvc;
class Model
{
public function getData()
{
return [
['id' => 1, 'name' => '小米同学', 'model' => 'xps', 'price' => 3555],
['id' => 2, 'name' => '小夏同学', 'model' => 'xps', 'price' => 355],
['id' => 3, 'name' => '小爱同学', 'model' => 'XPS PROS', 'price' => 353],
];
}
}
视图类
<?php
namespace mvc;
class View
{
public function fetch($data)
{
$table = '<table>';
$table .= '<caption>我喜爱的3C设备</caption>';
$table .= '<tr><td>ID</td><td>品名</td><td>型号</td><td>价格</td></tr>';
foreach ($data as $good) {
$table .= '<tr>';
$table .= '<td>' . $good['id'] . '</td>';
$table .= '<td>' . $good['name'] . '</td>';
$table .= '<td>' . $good['model'] . '</td>';
$table .= '<td>' . $good['price'] . '</td>';
$table .= '</tr>';
}
$table .= '</table>';
return $table;
}
}
echo '<style>
table {border-collapse: collapse; border: 1px solid; width: 500px;height: 150px}
caption {font-size: 1.2rem; margin-bottom: 10px;}
tr:first-of-type { background-color:lightblue;}
td,th {border: 1px solid}
td:first-of-type {text-align: center}
</style>';
3.控制类
<?php
// 控制器: 将商品展示出来
namespace mvc;
// 1. 加载模型类
require 'myModel.php';
// 2. 加载 视图类
require 'myView.php';
// 3. 创建 控制器类
class Controller1
{
public function index()
{
// 1 获取数据
$model = new Model;
$data = $model->getData();
// 2. 渲染模板
$view = new View;
return $view->fetch($data);
}
}
// 4. 客户端调用
// 实例化控制器类
$controller = new Controller1();
echo $controller->index();
4.小结
对于这个框架的编写,理解起来没有问题,但当实际编写的完成的时候,出现了一些小问题,而导致没法实现效果,后面检查多次才发现问题所在,自己不够细心。后面的作业会,逐渐补上。