From da293a266f6571b0587aea9dabf47a0bc759f8d0 Mon Sep 17 00:00:00 2001 From: Steve Mareigner Date: Tue, 2 Apr 2019 16:55:50 +0200 Subject: [PATCH] inject Request in ResponseBuilder --- src/Slim/Handlers/Strategies/ActionStrategy.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Slim/Handlers/Strategies/ActionStrategy.php b/src/Slim/Handlers/Strategies/ActionStrategy.php index 2b7052a..5c0849a 100644 --- a/src/Slim/Handlers/Strategies/ActionStrategy.php +++ b/src/Slim/Handlers/Strategies/ActionStrategy.php @@ -12,6 +12,7 @@ use Eukles\Slim\Handlers\ApiProblemRendererTrait; use Exception; use InvalidArgumentException; +use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\UploadedFileInterface; @@ -181,7 +182,7 @@ protected function buildParams( * @return ResponseInterface * @throws Exception */ - protected function buildResponse($result, ResponseInterface $response) + protected function buildResponse($result, ResponseInterface $response, RequestInterface $request) { $responseBuilder = $this->container->getResponseBuilder(); @@ -193,6 +194,9 @@ protected function buildResponse($result, ResponseInterface $response) if (!is_callable($responseFormatter)) { throw new ResponseFormatterException('ResponseFormatter must be callable or implements ResponseFormatterInterface'); } + if (method_exists($responseBuilder, 'setRequest')) { + $responseBuilder->setRequest($request); + } $result = $responseBuilder($result); @@ -237,7 +241,7 @@ protected function callHandler( if (($result instanceof ResponseInterface)) { $response = $result; } else { - $response = $this->buildResponse($result, $response); + $response = $this->buildResponse($result, $response, $request); } return $response;