博客列表 >0116PHP简单MVC实现

0116PHP简单MVC实现

Admin
Admin原创
2020年02月01日 21:41:52694浏览

PHP简单MVC实现

MVC是什么

MVC是一个啥?

  • M model 模型
  • v view 视图
  • c controller 控制器
    一般来说就是控制器喊模型来个数据再把数据给视图渲染了

    来简单的实现一个MVC 数据就用老师上课讲的了。

    Model模型

    1. <?php
    2. namespace mvc;
    3. // 模型 数据库操作
    4. class Model
    5. {
    6. public function getDate()
    7. {
    8. return [
    9. ['id' => 1, 'name' => 'Dell电脑', 'model' => 'xps', 'price' => 15000],
    10. ['id' => 2, 'name' => '华为手机', 'model' => 'P30 Pro', 'price' => 4988],
    11. ['id' => 3, 'name' => '小爱同学', 'model' => 'AI音箱', 'price' => 299],
    12. ];
    13. }
    14. }
    说了拉这是简单的实现。一般来说模型里面是写了数据库操作类等操作数据库的!

    View视图

    1. <?php
    2. namespace mvc;
    3. // 视图类 渲染页面使用
    4. echo '<style>
    5. table {border-collapse: collapse; border: 1px solid; width: 500px;height: 150px}
    6. caption {font-size: 1.2rem; margin-bottom: 10px;}
    7. tr:first-of-type { background-color:lightblue;}
    8. td,th {border: 1px solid}
    9. td:first-of-type {text-align: center}
    10. </style>';
    11. class View
    12. {
    13. public function fetch($data)
    14. {
    15. $table = '<table>';
    16. $table .= '<caption>我喜爱的3C设备</caption>';
    17. $table .= '<tr><td>ID</td><td>品名</td><td>型号</td><td>价格</td></tr>';
    18. foreach($data as $good)
    19. {
    20. $table .= '<tr>';
    21. $table .= '<td>'.$good['id'].'</td>';
    22. $table .= '<td>'.$good['name'].'</td>';
    23. $table .= '<td>'.$good['model'].'</td>';
    24. $table .= '<td>'.$good['price'].'</td>';
    25. $table .= '</tr>';
    26. }
    27. $table .= '</table>';
    28. //最后将table返回出去
    29. return $table;
    30. }
    31. }
    视图你可以理解为就是将数据和标签结合在一起渲染出来,当然重要的话说三遍这个只是例子(特别简单的那种)。

    Controller 控制器

    控制器啥作用就可以以字面意思来理解!控制模型和视图!
    1. namespace mvc;
    2. //加载模型类
    3. require 'Model.php';
    4. //加载视图类
    5. require 'View.php';
    6. //创建控制类
    7. class controller
    8. {
    9. //先创建类成员
    10. public $model;
    11. public $view;
    12. //来一手构造方法传入模型和视图
    13. public function __construct($model,$view)
    14. {
    15. $this->model = $model;
    16. $this->view = $view;
    17. }
    18. public function index()
    19. {
    20. //先从模型中获取数据;
    21. $data=($this->model)->getDate();
    22. //在去视图中渲染
    23. return ($this->view)->fetch($data);
    24. }
    25. }
    26. //先在这里把对象创建一手!
    27. $data = new Model();
    28. $view = new View();
    29. //然后实例化控制器的时候传进去这样子叫注入。
    30. $demo = new controller($data,$view);
    31. echo $demo->index();
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议