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/
实现效果:
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);
实现效果: