博客列表 >演示依赖注入,MVC,路由案例 2019年10月12日 08:00

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

努力拼搏----赵桂福的博客
努力拼搏----赵桂福的博客原创
2019年10月12日 16:56:27692浏览

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

运行实例 »

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

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

上一条:20191009下一条:2019101002 作业
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议