implementsInterface(ControllerRequest::class)) { $request = $this->container->get(Request::class); $parsedBody = $request->parsedBody; $controllerRequest = $this->controllerRequestFactory ->createAndValidate($reflectionClass, $parsedBody); $this->container->bind($param['type'], $controllerRequest); $parameters[] = $controllerRequest; continue; } $parameters[] = $this->container->get($param['type']); } catch (ReflectionException $e) { $this->logger?->error("Parameter reflection failed", [ 'type' => $param['type'], 'error' => $e->getMessage() ]); throw new ParameterResolutionException( "Cannot resolve parameter of type '{$param['type']}'", 0, $e ); } catch (\Throwable $e) { $this->logger?->error("Parameter preparation failed", [ 'param' => $param, 'error' => $e->getMessage() ]); throw $e; } } return $parameters; } }