think\Request
、think\facade\Request
、app\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);