php mvc多层依赖注入,演示依赖注入,MVC,路由案例 2019年10月12日 08:00

今晚学习了依赖注入,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);

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

【总结】大体的理解还是可以的,不过,还是没有透彻的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值