thinkRequest
、thinkfacadeRequest
、appRequest
之间的联系
官方手册原文
当前的请求对象由thinkRequest类负责,该类不需要单独实例化调用,通常使用依赖注入即可。在其它场合则可以使用thinkfacadeRequest静态类操作。项目里面应该使用appRequest对象,该对象继承了系统的thinkRequest对象。
个人总结
请求信息本质上由thinkRequest类负责,但是使用的时候不应直接使用该类。
要么使用 thinkfacadeRequest 类静态调用,要么通过appRequest对象链式调用
1. 门面类
// appRequest 对象
$request = hinkfacadeRequest::instance();
dump($request);
2. 依赖注入
特别注意:注入的是 hinkRequest,而不能是门面类 hinkfacadeRequest
public function save( hinkRequest $request)
{
// appRequest 对象
dump($request);
}
3. 框架提供的基础控制器的 request
属性
继承基础控制器:BaseController.php
<?php
namespace appcontroller;
use appBaseController;
class User extends BaseController
{
public function index()
{
// appRequest 对象
$request = $this->request;
dump($request);
}
}
基础控制器构造方法
4. request() 助手函数
request() 助手函数返回 appRequest
对象
// appRequest 对象
$request = request();
dump($request);
5. app() 超级助手函数
// appRequest 对象
$request1 = app('request');
// appRequest 对象
$request2 = app()->request;
// appRequest 对象
$request3 = app()->app->request;
dump($request1);
dump($request2);
dump($request3);