当前的请求对象由`ESD\Core\Server\Beans\AbstractRequest`类负责,该类不需要单独实例化调用,通常使用依赖注入即可。在其它场合则可以使用`trait GetHttp`操作。
# 构造方法注入
一般适用于没有继承系统的控制器类的情况。request 对象符合psr-7规范。
~~~
<?php
namespace ESD\Examples\Controller;
use DI\Annotation\Inject;
use ESD\Core\Server\Beans\Request;
use ESD\Plugins\EasyRoute\Annotation\RestController;
/**
* @RestController()
* Class Index
* @package ESD\Plugins\EasyRoute
*/
class Index extends Base
{
/**
* @Inject()
* @var Request
*/
public $request;
public function params(){
return $this->request->query();
}
~~~
# trait 引入
~~~
use \ESD\Plugins\EasyRoute\GetHttp;
public function params(){
$this->getRequest(); //获取psr-7对象
//以下方法为trait进行了一些封装
$this->query();
$this->queryRequire();
$this->post();
$this->postRequire();
$this->postRawJson();
$this->postRawXml();
$this->input();
$this->inputRequire();
}
~~~
# 直接调用
~~~
getDeepContextValueByClassName(Request::class);
~~~
- 前言
- 捐赠ESD项目
- 使用篇-通用
- 环境
- 安装
- 规范
- 压力测试
- 配置
- 如何设置YML配置
- server配置
- 端口配置
- 项目结构
- 事件派发
- 日志
- 注解
- DI容器
- 自定义进程
- 并发及协程池
- Console插件
- Scheduled插件
- Redis插件
- AOP插件
- Saber插件
- Mysql插件
- mysql事务
- Actuator插件
- Whoops插件
- Cache插件
- PHPUnit插件
- Security插件
- Session插件
- EasyRoute插件
- http路由
- ProcessRpc插件
- AutoReload插件
- AnnotationsScan插件
- Tracing-plugin插件
- MQTT插件
- Pack插件
- AMQP插件
- Validate插件
- Uid插件
- Topic插件
- Blade插件
- CsvReader插件
- hashed-wheel-timer-plugin插件
- 使用篇-HTTP
- 路由
- 静态文件
- 路由定义
- 修饰方法
- 路由分组
- 资源路由
- 端口作用域
- 异常处理
- 跨域请求
- 路由缓存
- 控制器
- 控制器初始化
- 前置操作
- 跳转和重定向
- 异常处理
- 请求
- 请求对象
- 请求信息
- request消息
- response消息
- stream消息
- url接口
- 验证器
- 内置验证器
- 内置过滤器
- 使用篇-WS
- 如何使用
- 路由
- 使用篇-TCP
- 插件篇-PluginSystem
- 微服务篇-ESDCloud
- CircuitBreaker插件
- SaberCloud插件
- 分布式链路追踪系统
- Consul插件