今晚学习了依赖注入,MVC,路由知识,课堂上听的时候感觉没有问题,实际操作的时候还是遇到了很多问题,写起比较生,没法融会贯通。总体来说还是非常不错的。现将各个功能实例如下:
1、依赖注入
实例
//依赖注入演示
//定义第一个类
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
实例
//实现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='
foreach($xinxi as $v){
$div.='
'.$v.'
';}
$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、路由原理的实例及理解
实例
//路由原理
$url = '/rout.php/admin/user/add/name/guifu/age/36/salary/8899';//$_SERVER['REQUEST_URI'];,里面用的是案例url
//echo $url;
//echo "
";
$req = explode('/',$url);//从url路径中解析出独立的单元
//echo '
';
//print_r($req);
//路由的目标是将url中的控制器,方法映射到函数上
$route = array_slice($req,2,3);//从一个数组中取出一部分数据
//echo "
";
//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
$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);
?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
【总结】大体的理解还是可以的,不过,还是没有透彻的理解。