Improved HttpRequest casting code.
This commit is contained in:
parent
d5b5efab46
commit
ecc9d9a348
2 changed files with 34 additions and 4 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
0.2503.82012
|
0.2503.82034
|
||||||
|
|
|
@ -379,15 +379,45 @@ class HttpRequest extends HttpMessage implements ServerRequestInterface {
|
||||||
if($request instanceof HttpRequest)
|
if($request instanceof HttpRequest)
|
||||||
return $request;
|
return $request;
|
||||||
|
|
||||||
|
/** @var array<string, list<string|null>> */
|
||||||
|
$queryParams = (function(array $raw) {
|
||||||
|
$params = [];
|
||||||
|
|
||||||
|
foreach($raw as $name => $value) {
|
||||||
|
if(is_scalar($value))
|
||||||
|
$value = [$value];
|
||||||
|
if(!is_array($value))
|
||||||
|
$value = [null];
|
||||||
|
|
||||||
|
$params[(string)$name] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $params;
|
||||||
|
})($request->getQueryParams());
|
||||||
|
|
||||||
|
$cookieParams = (function(array $raw) {
|
||||||
|
$params = [];
|
||||||
|
|
||||||
|
foreach($raw as $name => $value) {
|
||||||
|
if(!is_scalar($value))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$params[(string)$name] = (string)$value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $params;
|
||||||
|
})($request->getCookieParams());
|
||||||
|
|
||||||
return new HttpRequest(
|
return new HttpRequest(
|
||||||
$request->getProtocolVersion(),
|
$request->getProtocolVersion(),
|
||||||
$request->getHeaders(), // @phpstan-ignore-line: dont care
|
// @phpstan-ignore-next-line: interface erroneously defines as string[][] instead of array<string, string[]>
|
||||||
|
$request->getHeaders(),
|
||||||
$request->getBody(),
|
$request->getBody(),
|
||||||
[],
|
[],
|
||||||
$request->getMethod(),
|
$request->getMethod(),
|
||||||
HttpUri::castUri($request->getUri()),
|
HttpUri::castUri($request->getUri()),
|
||||||
$request->getQueryParams(), // @phpstan-ignore-line: dont care
|
$queryParams,
|
||||||
$request->getCookieParams(), // @phpstan-ignore-line: dont care
|
$cookieParams,
|
||||||
$request->getParsedBody(), // @phpstan-ignore-line: dont care
|
$request->getParsedBody(), // @phpstan-ignore-line: dont care
|
||||||
$request->getUploadedFiles(), // @phpstan-ignore-line: dont care
|
$request->getUploadedFiles(), // @phpstan-ignore-line: dont care
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue