- $request = [];
-
- foreach ($defaults as $parameter => $defaultvalue) {
- if (is_string($defaultvalue)) {
- $request[$parameter] = $input[$parameter] ?? $defaultvalue;
- } elseif (is_int($defaultvalue)) {
- $request[$parameter] = (int)($input[$parameter] ?? $defaultvalue);
- } elseif (is_float($defaultvalue)) {
- $request[$parameter] = (float)($input[$parameter] ?? $defaultvalue);
- } elseif (is_array($defaultvalue)) {
- $request[$parameter] = $input[$parameter] ?? [];
- } elseif (is_bool($defaultvalue)) {
- $request[$parameter] = in_array(strtolower($input[$parameter] ?? ''), ['true', '1']);
- } else {
- Logger::notice('Unhandled default value type', ['parameter' => $parameter, 'type' => gettype($defaultvalue)]);
- }
- }
-
- foreach ($input ?? [] as $parameter => $value) {
- if ($parameter == 'pagename') {
- continue;
- }
- if (!in_array($parameter, array_keys($defaults))) {
- Logger::notice('Unhandled request field', ['parameter' => $parameter, 'value' => $value, 'command' => DI::args()->getCommand()]);
- }
- }
-
- Logger::debug('Got request parameters', ['request' => $request, 'command' => DI::args()->getCommand()]);
- return $request;