requestSchema) || $request->getMethod() !== Request::METHOD_POST) { return false; } return null !== $this->search($request, $argument); } public function resolve(Request $request, ArgumentMetadata $argument): Generator { $parameter = $this->search($request, $argument); $data = $this->serializer->deserialize($request->request->get($parameter), $argument->getType()); $this->validate($data); yield $data; } private function search(Request $request, ArgumentMetadata $argument): ?string { foreach ($this->requestSchema as $callback) { if ($argument->getType() !== $callback['type']) { continue; } foreach ($callback['params'] as $param) { if ($request->request->has($param)) { return $param; } } } return null; } }