requestFactory = $requestFactory; $this->responseFactory = $responseFactory; $this->serverRequestFactory = $serverRequestFactory; } public static function create( RequestFactoryInterface $requestFactory, ResponseFactoryInterface $responseFactory, ServerRequestFactoryInterface $serverRequestFactory ): self { return new self($requestFactory, $responseFactory, $serverRequestFactory); } public function createRequest(string $method, $uri): RequestInterface { return $this->requestFactory->createRequest($method, $uri); } public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface { return $this->responseFactory->createResponse($code, $reasonPhrase); } public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface { return $this->serverRequestFactory->createServerRequest($method, $uri, $serverParams); } }