Blogger Information
Blog 43
fans 0
comment 0
visits 30471
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MVC架构模式思想
橙絮圆
Original
565 people have browsed it

MVC架构模式思想

作业标题:0823mvc架构模式思想
作业内容:1. mvc之间的关系并用代码演绎? 2. 你理解的容器与依赖注入? 3. 什么是facade门面, 有什么作用?


  • mvc之间的关系并用代码演绎?

    • Model
      用于建立数据库连接,为控制器(Controller)提供底层数据

      1. <?php
      2. namespace mvc_demo;
      3. use PDO;
      4. class Model
      5. {
      6. public function getData()
      7. {
      8. return (new PDO('mysql:host=localhost;dbname=info','root','root',[PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING]))->query('SELECT `id`,`gender`,`uname`,`create_time` FROM `user` order by id asc LIMIT 11')->fetchAll(PDO::FETCH_ASSOC);
      9. }
      10. public function editData()
      11. {
      12. }
      13. }
    • View
      为最终用户提供显示的模板
    1. <?php
    2. namespace mvc_demo;
    3. // require 'Model.php';
    4. class View {
    5. public function fetch($data)
    6. {
    7. $table = '<table >';
    8. $table.='<caption>用户信息表</caption>';
    9. $table.= '
    10. <tr align="center">
    11. <td>编号</td>
    12. <td>姓名</td>
    13. <td>性别</td>
    14. <td>创建时间</td>
    15. <td>操作</td>
    16. </tr>
    17. ';
    18. foreach($data as $user)
    19. {
    20. $user['gender'] = $user['gender'] == 1 ?'男' : '女';
    21. $table.='<tr>';
    22. $table.='<td>'.$user['id'].'</td>';
    23. $table.='<td>'.$user['uname'].'</td>';
    24. $table.='<td>'.$user['gender'].'</td>';
    25. $table.='<td>'.date("Y-m-d H:m:s",$user['create_time']).'</td>';
    26. $table.='<td><button>删除</button>&nbsp;<button>编辑</button> </td>';
    27. $table.='</tr>';
    28. }
    29. $table .= '</table>';
    30. return $table;
    31. }
    32. }
    33. echo '<style>
    34. table {border-collapse: collapse; border: 1px solid;text-align: center; width: 500px;height: 150px;width: 600px;}
    35. caption {font-size: 1.2rem; margin-bottom: 10px;}
    36. tr:first-of-type { background-color:lightblue;}
    37. td,th {border: 1px solid; padding:5px}
    38. </style>';
    • Controller
      为Model和View搭建桥梁,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。
  1. <?php
  2. class Controller
  3. {
  4. protected $model;
  5. protected $view;
  6. // 将外部依赖的对象在构造方法中注入进来 完成外部对象在本类多个方法中的共享
  7. public function __construct(Model $model,View $view)
  8. {
  9. $this->model = $model;
  10. $this->view = $view;
  11. }
  12. public function index()
  13. {
  14. // 1. 获取数据
  15. $data = $this->model->getData();
  16. // 2. 渲染数据
  17. return $this->view->fetch($data);
  18. }
  19. public function edit()
  20. {
  21. $this->model->editData();
  22. }
  23. }
  24. $model = new Model;
  25. $view = new View;
  26. $c = new Controller($model,$view);
  27. echo $c->index();

人员信息

  • 你理解的容器与依赖注入?
    容器 container 依赖注入的类统一由容器进行管理,容器 数组 如果当前类依赖的对象很多, 可以将这些依赖的对象 , 类,闭包,放到一个”服务容器”中进行统一管理 bind make

  • 什么是facade门面, 有什么作用?
    facade 门面为容器中的(动态)类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性。facade就是在服务容器和控制器之间加了一个中间层

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post