# 请求
DCE定义的请求不止传统意义上的类HTTP请求,而是将发起的所有交互皆视为请求(如通过命令行执行脚本),并统一按请求 - 处理 - 响应的流程处理。
请求类是DCE中的一个大类,该类绑定了非常丰富的信息,在你的业务代码中会经常访问该类对象。
# \dce\project\request\Request
请求类
# ->rawRequest
\dce\project\request\RawRequest 原始请求对象(用于全部类型请求)
# ->node
\dce\project\node\Node 当前请求的节点对象(用于全部类型请求)
# ->url
\dce\project\request\Url 当前节点Url对象(用于Http类型请求)
# ->project
\dce\project\Project 当前项目对象(用于全部类型请求)
# ->config
\dce\config\DceConfig 当前项目配置对象(用于全部类型请求)
# ->cookie
\dce\project\session\Cookie 当前项目Cookie对象(用于Http类型请求)
# ->session
\dce\project\session\Session 当前项目Session对象(用于全部类型请求)
# ->locale
\dce\i18n\Locale 当前请求本地化对象(用于全部类型请求)
# ->rawData
mixed 原始请求数据(用于全部类型请求),请求类型与属性值的对应表如下:
| 请求类型 | 属性值 |
|---|---|
| http | string php://input |
| cli | array $argv除开脚本参数外的参数集 |
| tcp | mixed 解包后除开路径外的数据 |
| ucp | 同tcp |
| websocket | 同tcp |
# ->request
array 请求参数,请求类型与属性值的对应表如下:
| 请求类型 | 属性值 |
|---|---|
| get | ->get |
| post | ->get + ->post |
| put | ->get + ->put |
| delete | ->get + ->delete |
| cli | ->cli |
| tcp | 除开路径的数据若为json,则此处为json转的数组,否则为null(可以取rawData) |
| udp | 同tcp |
| websocket | 同tcp |
# ->pureCli
array 不带前缀的cli参数,如['h'=>'', 'p'=>'']
# ->cli
array 完整cli参数,如['-h'=>'', '--p'=>'']
# ->get
array Http请求的get参数
# ->post
array Http请求的post参数
# ->put
array Http请求的put参数
# ->delete
array Http请求的delete参数
# ->files
array Http请求的上传文件集
# ->fd
int websocket与tcp连接的资源描述符
# ->ext
array 供用户用的扩展属性
# \dce\project\request\RequestManager
请求管理器
# ::currentId()
在全局取当前请求的ID
CGI模式时,一个进程处理一个请求,控制器间不会干扰,无需为请求分配唯一ID,返回0非携程模式时,请求间不会并行执行控制器,也不会互相干扰,无需唯一ID,返回0或-1Swoole协程模式时,请求控制器会并行执行,可能会相互干扰产生污染,但他们拥有不同的根协程ID,可以以此作为其ID隔离出安全沙盒
返回
int
# ::current()
在全局取当前的请求对象
返回
\dce\project\request\Request示例
// 在控制器或从控制器调用的类方法中执行
testPoint(RequestManager::current()->locale);
/*
1-1 object(dce\i18n\Locale)#87 (2) {
["lang"] => string(2) "zh"
["country"] => string(2) "CN"
}
*/
2
3
4
5
6
7
8