登录  /  注册
博主信息
博文 47
粉丝 1
评论 0
访问量 38963
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
自定义MVC
新手1314
原创
535人浏览过

core文件夹中的文件(原始mvc)

controller.php

  1. <?php
  2. namespace shiyans;
  3. class controller
  4. {
  5. protected $model;
  6. protected $view;
  7. public function __construct($model, $view)
  8. {
  9. $this -> model = $model;
  10. $this -> view = $view;
  11. }
  12. public function show()
  13. {
  14. $data = $this ->model->getAll();
  15. $this->view->display($data);
  16. }
  17. }

model.php

  1. <?php
  2. namespace shiyans;
  3. use PDO;
  4. class model
  5. {
  6. protected $db;
  7. public function __construct($sdb, $username, $password)
  8. {
  9. $this->db=new PDO($sdb, $username, $password);
  10. }
  11. public function getAll($n = 10)
  12. {
  13. $stmt =$this ->db->prepare('SELECT * FROM `student` LIMIT ?');
  14. $stmt ->bindParam(1, $n, PDO::PARAM_INT);
  15. $stmt ->execute();
  16. return $stmt->fetchAll();
  17. }
  18. }

view.php

  1. <?php
  2. namespace shiyans;
  3. class view
  4. {
  5. public function display($data)
  6. {
  7. $tables = $data;
  8. include FATE.'/view/'.'shiyan.php';
  9. }
  10. }

controller文件夹中的文件(自定义控制器,动态测试文件)

newcontroller.php(自定义控制器)

  1. <?php
  2. namespace shiyans;
  3. class newcontroller extends controller
  4. {
  5. }

textcontroller.php

  1. <?php
  2. namespace shiyans;
  3. class textcontroller
  4. {
  5. public function text()
  6. {
  7. return '<p>测试文件输出结果:Hello World</p>';
  8. }
  9. }

动态测试结果

model文件夹中的文件(自定义模型)

newmodel.php

  1. <?php
  2. namespace shiyans;
  3. class newmodel extends model
  4. {
  5. }

view文件夹中的文件(视图)

shiyan.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <table border="1" cellspacing="0" cellpadding="5" width="400">
  11. <caption>表单</caption>
  12. <thead>
  13. <tr>
  14. <th>ID</th>
  15. <th>姓名</th>
  16. <th>性别</th>
  17. <th>邮箱</th>
  18. <th>操作</th>
  19. </tr>
  20. </thead>
  21. <tbody>
  22. <!-- <?php foreach ($tables as $table): ?>
  23. <tr>
  24. <td><?= $table['id'] ?>
  25. </td>
  26. <td><?= $table['name'] ?>
  27. </td>
  28. <td><?= $table['sex']?'女':'男' ?>
  29. </td>
  30. <td><?= $table['email'] ?>
  31. </td>
  32. <td><a href="">编辑</a><a href="">删除</a></td>
  33. </tr>
  34. <?php endforeach ?> -->
  35. <?php foreach ($tables as [$id,$name,$sex,$email]): ?>
  36. <tr>
  37. <td><?= $id ?>
  38. </td>
  39. <td><?= $name ?>
  40. </td>
  41. <td><?= $sex?'女':'男' ?>
  42. </td>
  43. <td><?= $email ?>
  44. </td>
  45. <td><a href="">编辑</a><a href="">删除</a></td>
  46. </tr>
  47. <?php endforeach ?>
  48. </tbody>
  49. </table>
  50. </body>
  51. </html>

根目录里的文件(信息存储文件,串联实现功能文件)

config.php(信息存储文件)

  1. <?php
  2. // 信息储存文件
  3. //数据库信息
  4. define('DATABASE', [
  5. 'type' => 'mysql',
  6. 'dbname' => 'php',
  7. 'username' => 'root',
  8. 'password' => 'root'
  9. ]);
  10. //文件目录信息
  11. define('FILE', [
  12. 'new_controller' => 'new',
  13. 'new_action' =>'show'
  14. ]);
  15. //载入文件信息
  16. define(
  17. 'FATE',
  18. __DIR__
  19. );

index.php(实现文件)

  1. <?php
  2. namespace shiyans;
  3. require __DIR__ . '/config.php';
  4. require __DIR__ . '/core/controller.php';
  5. require __DIR__ . '/core/model.php';
  6. require __DIR__ . '/core/view.php';
  7. require __DIR__ . '/model/newmodel.php';
  8. //解构信息页面里的数组
  9. extract(DATABASE);
  10. //数据库连接
  11. $sdn = sprintf('%s:dbname=%s', $type, $dbname);
  12. $model = new newmodel($sdn, $username, $password);
  13. //动态获取浏览器地址中的控制器及控制器方法,并设置默认值
  14. $a = $_GET['a'] ?? FILE['new_action'];
  15. $c = $_GET['c'] ?? FILE['new_controller'];
  16. //输出预览是否获取
  17. // echo $a,$c;
  18. //加载获取类名
  19. $class = $c.'controller';
  20. require __DIR__ . '/controller/' .$class . '.php';
  21. //加载类
  22. $view = new view();
  23. //获取控制器类名
  24. $full = __NAMESPACE__.'\\' .$class;
  25. //输出查看是否获取成功
  26. // echo $full;
  27. $controller = new $full($model, $view);
  28. echo $controller ->$a();
批改老师:PHPzPHPz

批改状态:合格

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

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

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