Blogger Information
Blog 19
fans 0
comment 0
visits 16741
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
演示依赖注入,MVC,路由案例 2019年10月12日 08:00
努力拼搏----赵桂福的博客
Original
693 people have browsed it

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

运行实例 »

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

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

Correction status:qualified

Teacher's comments:多写几次, 就好了
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post