类 ServerRequestFactory
用于创建 ServerRequest 实例的工厂。
这添加了 CakePHP 特定的行为来填充 basePath 和 webroot 属性。 此外,Uri 的路径被更正为仅包含请求的“虚拟”路径。
命名空间: Cake\Http
方法摘要
-
createServerRequest() public
创建一个新的服务器请求。
-
fromGlobals() public static
从提供的超全局值创建请求。
-
marshalBodyAndRequestMethod() protected static
根据模拟的 _method HTTP 覆盖值设置 REQUEST_METHOD 环境变量。 如果您想读取客户端使用的非模拟 HTTP 方法,也会保留“ORIGINAL_REQUEST_METHOD”。
-
marshalFiles() protected static
处理上传的文件并将它们移动到解析的正文中。
方法详情
createServerRequest() ¶ public
createServerRequest(string $method, UriInterface|string $uri, array $serverParams = []): Psr\Http\Message\ServerRequestInterface
创建一个新的服务器请求。
请注意,服务器参数是精确地按原样获取的 - 不会对给定的值进行解析/处理,特别是不会尝试确定必须明确提供的 HTTP 方法或 URI。
参数
-
string
$method 与请求关联的 HTTP 方法。
-
UriInterface|string
$uri 与请求关联的 URI。 如果该值为字符串,工厂必须基于它创建 UriInterface 实例。
-
array
$serverParams optional 用于为生成的请求实例播种的 SAPI 参数数组。
返回值
Psr\Http\Message\ServerRequestInterface
fromGlobals() ¶ public static
fromGlobals(array|null $server = null, array|null $query = null, array|null $parsedBody = null, array|null $cookies = null, array|null $files = null): Cake\Http\ServerRequest
从提供的超全局值创建请求。
如果任何参数未提供,将使用相应的超全局值。
参数
-
array|null
$server optional $_SERVER 超全局变量
-
array|null
$query optional $_GET 超全局变量
-
array|null
$parsedBody optional $_POST 超全局变量
-
array|null
$cookies optional $_COOKIE 超全局变量
-
array|null
$files optional $_FILES 超全局变量
返回值
Cake\Http\ServerRequest
抛出
InvalidArgumentException
对于无效的文件值
marshalBodyAndRequestMethod() ¶ protected static
marshalBodyAndRequestMethod(array $parsedBody, Cake\Http\ServerRequest $request): Cake\Http\ServerRequest
根据模拟的 _method HTTP 覆盖值设置 REQUEST_METHOD 环境变量。 如果您想读取客户端使用的非模拟 HTTP 方法,也会保留“ORIGINAL_REQUEST_METHOD”。
内容类型为“application/x-www-form-urlencoded”的请求正文将被解析为 PUT/PATCH/DELETE 请求的数组。
参数
-
array
$parsedBody 解析的正文。
-
Cake\Http\ServerRequest
$request 请求实例。
返回值
Cake\Http\ServerRequest
marshalFiles() ¶ protected static
marshalFiles(array $files, Cake\Http\ServerRequest $request): Cake\Http\ServerRequest
处理上传的文件并将它们移动到解析的正文中。
参数
-
array
$files 用于规范化和合并到解析正文中的文件数组。
-
Cake\Http\ServerRequest
$request 请求实例。
返回值
Cake\Http\ServerRequest