Fix #37740: Cast all Request parameter values to string

This commit is contained in:
Randy Geraads 2020-08-06 15:14:23 +02:00 committed by Fabien Potencier
parent c23166c8d8
commit d4e2cec1fb
2 changed files with 25 additions and 0 deletions

View File

@ -37,6 +37,11 @@ class Request
{
$this->uri = $uri;
$this->method = $method;
array_walk_recursive($parameters, static function (&$value) {
$value = (string) $value;
});
$this->parameters = $parameters;
$this->files = $files;
$this->cookies = $cookies;

View File

@ -51,4 +51,24 @@ class RequestTest extends TestCase
$request = new Request('http://www.example.com/', 'get', [], [], [], ['foo' => 'bar']);
$this->assertEquals(['foo' => 'bar'], $request->getServer(), '->getServer() returns the server parameters of the request');
}
public function testAllParameterValuesAreConvertedToString(): void
{
$parameters = [
'foo' => 1,
'bar' => [
'baz' => 2,
],
];
$expected = [
'foo' => '1',
'bar' => [
'baz' => '2',
],
];
$request = new Request('http://www.example.com/', 'get', $parameters);
$this->assertSame($expected, $request->getParameters());
}
}