2
2
3
3
namespace PhpMiddleware \RequestSimulator ;
4
4
5
- use Psr \Http \Message \ResponseInterface ;
5
+ use Interop \Http \ServerMiddleware \DelegateInterface ;
6
+ use Interop \Http \ServerMiddleware \MiddlewareInterface ;
7
+ use PhpMiddleware \DoublePassCompatibilityTrait ;
6
8
use Psr \Http \Message \ServerRequestInterface ;
7
9
use Zend \Diactoros \Request \Serializer as RequestSerializer ;
8
10
use Zend \Diactoros \Response \HtmlResponse ;
9
11
use Zend \Diactoros \Response \Serializer as ResponseSerializer ;
10
12
use Zend \Diactoros \ServerRequest ;
11
13
12
- final class RequestSimulatorMiddleware
14
+ final class RequestSimulatorMiddleware implements MiddlewareInterface
13
15
{
16
+ use DoublePassCompatibilityTrait;
17
+
14
18
const PARAM = 'simulated-request ' ;
15
19
16
- public function __invoke (ServerRequestInterface $ request , ResponseInterface $ response , callable $ next )
20
+ public function process (ServerRequestInterface $ request , DelegateInterface $ delegate )
17
21
{
18
22
if ($ request ->getMethod () === 'POST ' ) {
19
23
$ parsedBody = $ this ->parseBody ($ request ->getBody ());
@@ -27,9 +31,9 @@ public function __invoke(ServerRequestInterface $request, ResponseInterface $res
27
31
28
32
$ requestAsString = RequestSerializer::toString ($ request );
29
33
30
- $ responseResult = $ next ($ request, $ response );
34
+ $ response = $ delegate -> process ($ request );
31
35
32
- $ responseAsString = ResponseSerializer::toString ($ responseResult );
36
+ $ responseAsString = ResponseSerializer::toString ($ response );
33
37
34
38
$ html = sprintf ($ this ->getHtmlTemplate (), self ::PARAM , $ requestAsString , $ responseAsString );
35
39
@@ -59,4 +63,5 @@ private function getHtmlTemplate()
59
63
. '</body> '
60
64
. '</html> ' ;
61
65
}
66
+
62
67
}
0 commit comments