5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象

柑卵妹太筹腺期假扯头监秋许

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第1张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第2张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo1($lession)
    {
        return "学习课程:".$lession;
    }

    public function demo2()
    {
        return "学习课程:".$lession;
    }


}

执行:

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第3张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第4张


1.继承基类,使用$this->request->param(‘lession’);获取请求变量

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo1()
    {
        return "学习课程:".$this->request->param('lession');
    }

    public function demo2()
    {
        return "学习课程:".$this->request->param('lession');
    }


}

执行:

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第5张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第6张


2.直接使用请求类Request

<?php
namespace app\index\controller;
use think\Request;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo1()
    {
        return "学习课程:".Request::instance()->param('lession');
    }

    public function demo2()
    {
        return "学习课程:".Request::instance()->param('lession');
    }


}

执行:

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第5张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第6张


3.依赖注入

<?php
namespace app\index\controller;
use think\Request;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo1(Request $request)
    {
        return "学习课程:".$request->param('lession');
    }

    public function demo2()
    {
        return "学习课程:".$request->param('lession');
    }


}

执行:

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第9张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第10张

由上可知:并没有实现数据共享

解决方法:将Request对象使用依赖注入,注入到构造方法中

<?php
namespace app\index\controller;
use think\Request;
class Index
{
    protected $request;
    public function __construct(Request $request)
    {
        $this->request=Request::instance();
    }
    public function demo1()
    {
        return "学习课程:".$this->request->param('lession');
    }

    public function demo2()
    {
        return "学习课程:".$this->request->param('lession');
    }


}

执行:

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第11张

5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第12张

此时实现了依赖注入的对象在所有操作中的共享


5-9请求对象的依赖注入:通过操作参数的类型约束来创建请求对象第13张


查匡混恃尝宏辩刀蜕蛙耐寥毛