批改状态:合格
老师批语:mvc的流程和思想是很简单的
MVC即模型model,视图view,控制器controller
一般地model用来处理与数据库的联系,
view用来渲染用户端界面,
controller用来控制数据流程,即就是对接model和view
model <-> controller <-> view
1) 创建模型model,生成数据$data(),存为文件model.php
namespace mvcdemo;// 链接数据库;require ('pdoconnet.php');// 建立模型类: 用于数据库操作class Model{public function getData(){ global $pdo;return $pdo->query('SELECT * FROM `T_user` LIMIT 10')->fetchAll();}}// print_r ((new Model)->getData());
2)创建视图,就是用户端的界面样式,生成view.php文件
namespace mvcdemo;class View{public function fecth($data){$table='<table>';$table.='<tr><th>ID</th><th>姓名</th><th>性别</th><th>手机号</th></tr>';foreach ($data as $user){$table.= '<tr><th>'.$user['ID'].'</th>';$table.= '<th>'.$user['username'].'</th>';$table.= '<th>'.($user['sex']?'男':'女').'</th>';$table.= '<th>'.$user['mtel'].'</th></tr>';}$table.= '</table>';return $table;}}// 获得数据// require ('model.php') ;// $arr=(new Model)->getData();// 打印视图// echo (new View)->fecth($arr);
3)创建控制器,生成controller.php文件
namespace mvcdemo;// 导入两个文件require ('model.php');require ('view.php');class controller{public function getindex(){// 取得数据$Model=new Model;$data=$Model->getData();// 取得视图$View=new View;return $View->fecth($data);}}// 渲染结果$controller=new controller;echo $controller->getindex();echo (new controller)->getindex();
4) 在controller.php显示的结果
由于现有控制器的数据注入点是在函数中写错,对于引用不方便,因此可以难过修改注入点,让程序变得更灵活,这就是注入的选择
)通过函数传参数来注入
namespace mvcdemo;require ('model.php');require ('view.php');class controller2{public function getindex(Model $model, View $view){// 取得数据$data=$model->getData();// 取得视图return $view->fecth($data);}}// 渲染结果,通过函数传参,把二个new通过参数传入$model=new Model;$view=new View;$controller=new controller2;echo $controller->getindex($model,$view);
通过构造法传入
class controller3{private $model;private $view;public function __construct(Model $model,View $view){$this->model=$model;$this->view=$view;}public function getindex(){// 取得数据$data=$this->model->getData();// 取得视图return $this->view->fecth($data);}}// 渲染结果$model=new Model;$view=new View;$controller=new controller3($model,$view);echo $controller->getindex();?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号