1. 程式人生 > 實用技巧 >TP6.0 獲取請求物件的五種方式

TP6.0 獲取請求物件的五種方式

目錄

think\Requestthink\facade\Requestapp\Request 之間的聯絡

官方手冊原文

當前的請求物件由think\Request類負責,該類不需要單獨例項化呼叫,通常使用依賴注入即可。在其它場合則可以使用think\facade\Request靜態類操作。專案裡面應該使用app\Request物件,該物件繼承了系統的think\Request物件。

個人總結

請求資訊本質上由think\Request類負責,但是使用的時候不應直接使用該類。
要麼使用 think\facade\Request 類靜態呼叫,要麼通過app\Request物件鏈式呼叫

1. 門面類


// app\Request 物件
$request = \think\facade\Request::instance();

dump($request);

2. 依賴注入


特別注意:注入的是 \think\Request,而不能是門面類 \think\facade\Request

public function save(\think\Request $request)
{
	// app\Request 物件
	dump($request);
}

3. 框架提供的基礎控制器的 request 屬性


繼承基礎控制器:BaseController.php

<?php
namespace app\controller;

use app\BaseController;

class User extends BaseController
{
    public function index()
    {
    	// app\Request 物件
    	$request = $this->request;

    	dump($request);
    }
}

基礎控制器構造方法

4. request() 助手函式


request() 助手函式返回 \app\Request 物件

// app\Request 物件
$request = request();

dump($request);

5. app() 超級助手函式


// app\Request 物件
$request1 = app('request');
// app\Request 物件
$request2 = app()->request;
// app\Request 物件
$request3 = app()->app->request;

dump($request1);
dump($request2);
dump($request3);