博客列表 >MVC简单框架的实现(0116php学习)

MVC简单框架的实现(0116php学习)

小辰
小辰原创
2020年02月28日 15:58:17773浏览

1.首先效果图

2.模型类和视图类代码

模型类
  1. <?php
  2. namespace mvc;
  3. class Model
  4. {
  5. public function getData()
  6. {
  7. return [
  8. ['id' => 1, 'name' => '小米同学', 'model' => 'xps', 'price' => 3555],
  9. ['id' => 2, 'name' => '小夏同学', 'model' => 'xps', 'price' => 355],
  10. ['id' => 3, 'name' => '小爱同学', 'model' => 'XPS PROS', 'price' => 353],
  11. ];
  12. }
  13. }
视图类
  1. <?php
  2. namespace mvc;
  3. class View
  4. {
  5. public function fetch($data)
  6. {
  7. $table = '<table>';
  8. $table .= '<caption>我喜爱的3C设备</caption>';
  9. $table .= '<tr><td>ID</td><td>品名</td><td>型号</td><td>价格</td></tr>';
  10. foreach ($data as $good) {
  11. $table .= '<tr>';
  12. $table .= '<td>' . $good['id'] . '</td>';
  13. $table .= '<td>' . $good['name'] . '</td>';
  14. $table .= '<td>' . $good['model'] . '</td>';
  15. $table .= '<td>' . $good['price'] . '</td>';
  16. $table .= '</tr>';
  17. }
  18. $table .= '</table>';
  19. return $table;
  20. }
  21. }
  22. echo '<style>
  23. table {border-collapse: collapse; border: 1px solid; width: 500px;height: 150px}
  24. caption {font-size: 1.2rem; margin-bottom: 10px;}
  25. tr:first-of-type { background-color:lightblue;}
  26. td,th {border: 1px solid}
  27. td:first-of-type {text-align: center}
  28. </style>';

3.控制类

  1. <?php
  2. // 控制器: 将商品展示出来
  3. namespace mvc;
  4. // 1. 加载模型类
  5. require 'myModel.php';
  6. // 2. 加载 视图类
  7. require 'myView.php';
  8. // 3. 创建 控制器类
  9. class Controller1
  10. {
  11. public function index()
  12. {
  13. // 1 获取数据
  14. $model = new Model;
  15. $data = $model->getData();
  16. // 2. 渲染模板
  17. $view = new View;
  18. return $view->fetch($data);
  19. }
  20. }
  21. // 4. 客户端调用
  22. // 实例化控制器类
  23. $controller = new Controller1();
  24. echo $controller->index();

4.小结

  1. 对于这个框架的编写,理解起来没有问题,但当实际编写的完成的时候,出现了一些小问题,而导致没法实现效果,后面检查多次才发现问题所在,自己不够细心。后面的作业会,逐渐补上。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议