66
77use Interop \Http \ServerMiddleware \DelegateInterface ;
88use Interop \Http \ServerMiddleware \MiddlewareInterface ;
9+ use PhpMiddleware \DoublePassCompatibilityTrait ;
910use PhpMiddleware \LogHttpMessages \Formatter \ResponseFormatter ;
1011use PhpMiddleware \LogHttpMessages \Formatter \ServerRequestFormatter ;
1112use Psr \Http \Message \ResponseInterface as Response ;
1516
1617final class LogMiddleware implements MiddlewareInterface
1718{
19+ use DoublePassCompatibilityTrait;
20+
1821 const LOG_MESSAGE = 'Request/Response ' ;
1922
2023 private $ logger ;
@@ -37,32 +40,18 @@ public function __construct(
3740 $ this ->logMessage = $ logMessage ;
3841 }
3942
40- public function __invoke (ServerRequest $ request , Response $ response , callable $ next ) : Response
41- {
42- $ outResponse = $ next ($ request , $ response );
43-
44- $ this ->logMessages ($ request , $ outResponse );
45-
46- return $ outResponse ;
47- }
48-
4943 public function process (ServerRequest $ request , DelegateInterface $ delegate ) : Response
5044 {
5145 $ response = $ delegate ->process ($ request );
5246
53- $ this ->logMessages ($ request , $ response );
54-
55- return $ response ;
56- }
57-
58- private function logMessages (ServerRequest $ request , Response $ response )
59- {
6047 $ formattedRequest = $ this ->requestFormatter ->formatServerRequest ($ request );
6148 $ formattedResponse = $ this ->responseFormatter ->formatResponse ($ response );
6249
6350 $ this ->logger ->log ($ this ->level , $ this ->logMessage , [
6451 'request ' => $ formattedRequest ->getValue (),
6552 'response ' => $ formattedResponse ->getValue (),
6653 ]);
54+
55+ return $ response ;
6756 }
6857}
0 commit comments