Correction status:qualified
Teacher's comments:多写几次, 就好了
今晚学习了依赖注入,MVC,路由知识,课堂上听的时候感觉没有问题,实际操作的时候还是遇到了很多问题,写起比较生,没法融会贯通。总体来说还是非常不错的。现将各个功能实例如下:
1、依赖注入
<?php //依赖注入演示 //定义第一个类 namespace _20191012; class studentInfo{ public function xinXi(){ return "我是php中文网的学员--赵桂福"; } } //定义第二个类 class xueXi{ public function setInfo($xinxi){ return $xinxi->xinXi(); } } $zgf = new studentInfo();//实例化studentInfo $xs = new xueXi();//实例化xueXi echo $xs->setInfo($zgf);//将对象$zgf依赖注入 ?>
点击 "运行实例" 按钮查看在线实例
总结:老师您好,我这样的理解依赖注入对吗?
2、MVC
<?php //实现mvc //定义三个类 1、model 2/ view 3/controller namespace _2019101202; class Model{//定义model类 public function getData(){ $arys=['欧阳老师','朱老师','猪老师','赵桂福']; return $arys; } } class View{//定义model类 public function setData($xinxi){ $div='<div>'; foreach($xinxi as $v){ $div.='<p style=color:green;>'.$v.'</p>'; } $div.='<div>'; return $div; } } //定义控制器 class Controller{ public function fetch(Model $model, View $view){ //获取数据 $shuju =$model->getData(); return $view->setData($shuju); } } $model =new Model(); //var_dump($model->getData()); $view = new View(); //var_dump($view); $res = new Controller(); echo $res->fetch($model,$view); ?>
点击 "运行实例" 按钮查看在线实例
总结:这样书写简单的多练习了几遍后,感觉还可以,如果复杂的话,感觉还是不顺手,老师是写的少了吗?
3、路由原理的实例及理解
<?php //路由原理 $url = '/rout.php/admin/user/add/name/guifu/age/36/salary/8899';//$_SERVER['REQUEST_URI'];,里面用的是案例url //echo $url; //echo "<br/>"; $req = explode('/',$url);//从url路径中解析出独立的单元 //echo '<pre>'; //print_r($req); //路由的目标是将url中的控制器,方法映射到函数上 $route = array_slice($req,2,3);//从一个数组中取出一部分数据 //echo "<pre>"; //print_r($route); //数组的值保存在变量中 list($module,$controller,$action)=$route; //echo $module,$controller,$action; ///从url中拿参数 //http://localhost/rout.php/admin/user/add/ ///name/guifu/age/36/salary/8899 $values =array_slice($req,5,6); // print_r( $values); //将拿到的数据,用循环构造成键值对key=>values for($i=0;$i<count($values);$i+=2){ $params[$values[$i]] = $values[$i+1];//获取值 } // print_r($params); //创建一个控制器 class user{ public function add($name,$age,$salary){ return __METHOD__.':'.' 姓名:'.$name.' 年龄: '.$age.' 工资:'.$salary; } } ////路由的目标就是:将url中的操作映射到控制器的方法上 echo call_user_func_array([(new user()),'add'],$params); ?>
点击 "运行实例" 按钮查看在线实例
【总结】大体的理解还是可以的,不过,还是没有透彻的理解。