博客列表 >5.22 控制器与请求对象的功能与用途及依赖注入的实现原理

5.22 控制器与请求对象的功能与用途及依赖注入的实现原理

Allen的php博客
Allen的php博客原创
2018年05月23日 19:06:09631浏览

5月22日作业

1. 以你所理解的方式,描述一下控制器与请求对象的功能与用途

2. 实例讲解一下:依赖注入的实现原理(构造器与普通方法)


1、控制器与请求对象的功能与用途

◆ 控制器是一个处理单元,它是接受请求并将处理结果返回给调用者。

◆ 请求对象是:访问的URL地址

◆ 参数绑定:按名称绑定和按顺序绑定

默认参数绑定方式:在config目录下app.php文件

// URL参数方式 0 按名称成对解析 1 按顺序解析

    'url_param_type'         => 0,

实现代码:

<?php

namespace app\index\api;

class Index

{

public function index()

    {

        return '我是默认的index()方法';

    }

    public function test()

    {

        return '这里直接用return返回字符串结果';

    }

    public function wancan($a = '',$b = '')

    {

        return '<h3>我在'.$a.'吃饭, 今天的菜是:'.$b.'</h3> 哈哈哈~~';

    }

}

请求对象:http://www.tp51.com/index.php/index/index/wancan/a/%E9%A3%9F%E5%A0%82/b/%E5%B0%8F%E9%B8%A1%E7%82%96%E8%98%91%E8%8F%87/

实现效果:

3194037.png

2、依赖注入的实现原理实例(构造器与普通方法)

◆ 依赖注入:通过方法传入参数的方式代替实例化对象,用来解决当前类或方法与实例化对象高度耦合的问题

    public function getpromarm(\think\Request $request){

    dump($request->route());//route()在手册>请求>输入变量中

    }


实现方法:1、构造方法;2、操作方法(普通方法)

实例:

<?php

/医院

* 依赖注入案例

*/

class Son

{


public function cry() //哭方法

{

return '爱哭鼻子!';

}


public function laugh() //笑方法

{

return '爱哈哈大笑!';

}


public function dance() //跳舞方法

{

return '爱跳舞!';

}

}


/*

1、构造方法实现

 */

class Father

{

private $son = null;

public function __construct(Son $son)

{

$this->son = $son;

}


public function getInfo()

{

return '我的儿子'.$this->son->cry();

}

}


/*

2、普通方法实现

 */

class Father1

{


public function action(Son $son)

{

return '我的儿子'.$son->dance();

}

}


$son = new Son;

$father = new Father($son);

echo $father->getInfo();

echo '<hr>';

$father1 = new Father1(); 

echo $father1->action($son);

实现效果:

23190021.png

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