博主信息
博文 43
粉丝 0
评论 0
访问量 39449
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
MVC架构模式思想
橙絮圆
原创
766人浏览过

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就是在服务容器和控制器之间加了一个中间层

批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学