22
33namespace PhpMiddleware \RequestSimulator ;
44
5- use Psr \Http \Message \ResponseInterface ;
5+ use Interop \Http \ServerMiddleware \DelegateInterface ;
6+ use Interop \Http \ServerMiddleware \MiddlewareInterface ;
7+ use PhpMiddleware \DoublePassCompatibilityTrait ;
68use Psr \Http \Message \ServerRequestInterface ;
79use Zend \Diactoros \Request \Serializer as RequestSerializer ;
810use Zend \Diactoros \Response \HtmlResponse ;
911use Zend \Diactoros \Response \Serializer as ResponseSerializer ;
1012use Zend \Diactoros \ServerRequest ;
1113
12- final class RequestSimulatorMiddleware
14+ final class RequestSimulatorMiddleware implements MiddlewareInterface
1315{
16+ use DoublePassCompatibilityTrait;
17+
1418 const PARAM = 'simulated-request ' ;
1519
16- public function __invoke (ServerRequestInterface $ request , ResponseInterface $ response , callable $ next )
20+ public function process (ServerRequestInterface $ request , DelegateInterface $ delegate )
1721 {
1822 if ($ request ->getMethod () === 'POST ' ) {
1923 $ parsedBody = $ this ->parseBody ($ request ->getBody ());
@@ -27,9 +31,9 @@ public function __invoke(ServerRequestInterface $request, ResponseInterface $res
2731
2832 $ requestAsString = RequestSerializer::toString ($ request );
2933
30- $ responseResult = $ next ($ request, $ response );
34+ $ response = $ delegate -> process ($ request );
3135
32- $ responseAsString = ResponseSerializer::toString ($ responseResult );
36+ $ responseAsString = ResponseSerializer::toString ($ response );
3337
3438 $ html = sprintf ($ this ->getHtmlTemplate (), self ::PARAM , $ requestAsString , $ responseAsString );
3539
@@ -59,4 +63,5 @@ private function getHtmlTemplate()
5963 . '</body> '
6064 . '</html> ' ;
6165 }
66+
6267}
0 commit comments