6
6
7
7
use Interop \Http \ServerMiddleware \DelegateInterface ;
8
8
use Interop \Http \ServerMiddleware \MiddlewareInterface ;
9
+ use PhpMiddleware \DoublePassCompatibilityTrait ;
9
10
use PhpMiddleware \LogHttpMessages \Formatter \ResponseFormatter ;
10
11
use PhpMiddleware \LogHttpMessages \Formatter \ServerRequestFormatter ;
11
12
use Psr \Http \Message \ResponseInterface as Response ;
15
16
16
17
final class LogMiddleware implements MiddlewareInterface
17
18
{
19
+ use DoublePassCompatibilityTrait;
20
+
18
21
const LOG_MESSAGE = 'Request/Response ' ;
19
22
20
23
private $ logger ;
@@ -37,32 +40,18 @@ public function __construct(
37
40
$ this ->logMessage = $ logMessage ;
38
41
}
39
42
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
-
49
43
public function process (ServerRequest $ request , DelegateInterface $ delegate ) : Response
50
44
{
51
45
$ response = $ delegate ->process ($ request );
52
46
53
- $ this ->logMessages ($ request , $ response );
54
-
55
- return $ response ;
56
- }
57
-
58
- private function logMessages (ServerRequest $ request , Response $ response )
59
- {
60
47
$ formattedRequest = $ this ->requestFormatter ->formatServerRequest ($ request );
61
48
$ formattedResponse = $ this ->responseFormatter ->formatResponse ($ response );
62
49
63
50
$ this ->logger ->log ($ this ->level , $ this ->logMessage , [
64
51
'request ' => $ formattedRequest ->getValue (),
65
52
'response ' => $ formattedResponse ->getValue (),
66
53
]);
54
+
55
+ return $ response ;
67
56
}
68
57
}
0 commit comments