Skip to content

Commit f5b2a9f

Browse files
Added support PSR-15 middleware
Dropped support http-interop/http-middleware
1 parent 0dbc4a5 commit f5b2a9f

File tree

3 files changed

+24
-54
lines changed

3 files changed

+24
-54
lines changed

Diff for: composer.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
"php": ">=7.0",
1717
"psr/log": "^1.0",
1818
"psr/http-message": "^1.0",
19-
"zendframework/zend-diactoros": "^1.4 || ^2.0",
20-
"http-interop/http-middleware": "^0.4.1",
21-
"php-middleware/double-pass-compatibility": "^1.0"
19+
"psr/http-server-handler": "^1.0",
20+
"psr/http-server-middleware": "^1.0",
21+
"zendframework/zend-diactoros": "^1.4 || ^2.0"
2222
},
2323
"require-dev": {
2424
"phpunit/phpunit": "^6.1"

Diff for: src/LogMiddleware.php

+5-7
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,17 @@
44

55
namespace PhpMiddleware\LogHttpMessages;
66

7-
use Interop\Http\ServerMiddleware\DelegateInterface;
8-
use Interop\Http\ServerMiddleware\MiddlewareInterface;
9-
use PhpMiddleware\DoublePassCompatibilityTrait;
107
use PhpMiddleware\LogHttpMessages\Formatter\ResponseFormatter;
118
use PhpMiddleware\LogHttpMessages\Formatter\ServerRequestFormatter;
129
use Psr\Http\Message\ResponseInterface as Response;
1310
use Psr\Http\Message\ServerRequestInterface as ServerRequest;
11+
use Psr\Http\Server\MiddlewareInterface;
12+
use Psr\Http\Server\RequestHandlerInterface;
1413
use Psr\Log\LoggerInterface as Logger;
1514
use Psr\Log\LogLevel;
1615

1716
final class LogMiddleware implements MiddlewareInterface
1817
{
19-
use DoublePassCompatibilityTrait;
20-
2118
const LOG_MESSAGE = 'Request/Response';
2219

2320
private $logger;
@@ -40,9 +37,10 @@ public function __construct(
4037
$this->logMessage = $logMessage;
4138
}
4239

43-
public function process(ServerRequest $request, DelegateInterface $delegate) : Response
40+
/** @inheritdoc */
41+
public function process(ServerRequest $request, RequestHandlerInterface $handler): Response
4442
{
45-
$response = $delegate->process($request);
43+
$response = $handler->handle($request);
4644

4745
$formattedRequest = $this->requestFormatter->formatServerRequest($request);
4846
$formattedResponse = $this->responseFormatter->formatResponse($response);

Diff for: test/LogMiddlewareTest.php

+16-44
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,45 @@
22

33
namespace PhpMiddlewareTest\LogHttpMessages;
44

5-
use Interop\Http\ServerMiddleware\DelegateInterface;
65
use PhpMiddleware\LogHttpMessages\Formatter\EmptyMessageFormatter;
76
use PhpMiddleware\LogHttpMessages\LogMiddleware;
7+
use PHPUnit\Framework\MockObject\MockObject;
88
use PHPUnit\Framework\TestCase;
99
use Psr\Http\Message\ResponseInterface;
1010
use Psr\Http\Message\ServerRequestInterface;
11+
use Psr\Http\Server\RequestHandlerInterface;
1112
use Psr\Log\LoggerInterface;
1213
use Psr\Log\LogLevel;
1314

1415
class LogMiddlewareTest extends TestCase
1516
{
17+
/** @var LogMiddleware */
1618
private $middleware;
19+
/** @var LoggerInterface|MockObject */
1720
private $logger;
18-
private $request;
19-
private $response;
20-
private $next;
21-
private $level;
22-
private $delegate;
23-
private $nextResponse;
21+
private $handler;
2422

2523
protected function setUp()
2624
{
27-
$this->request = $this->createMock(ServerRequestInterface::class);
28-
$this->response = $this->createMock(ResponseInterface::class);
29-
$this->nextResponse = clone $this->response;
30-
$this->next = function () {
31-
return $this->nextResponse;
32-
};
33-
$this->delegate = $this->createMock(DelegateInterface::class);
34-
$this->delegate->method('process')->willReturn($this->nextResponse);
25+
$response = $this->createMock(ResponseInterface::class);
26+
27+
$this->handler = $this->createMock(RequestHandlerInterface::class);
28+
$this->handler->method('handle')->willReturn($response);
3529

3630
$formatter = new EmptyMessageFormatter();
3731
$this->logger = $this->createMock(LoggerInterface::class);
38-
$this->level = LogLevel::ALERT;
3932

40-
$this->middleware = new LogMiddleware($formatter, $formatter, $this->logger, $this->level);
33+
$this->middleware = new LogMiddleware($formatter, $formatter, $this->logger, LogLevel::ALERT);
4134
}
4235

43-
/**
44-
* @dataProvider middlewareProvider
45-
*/
46-
public function testLogFormattedMessages($middlewareExecutor)
36+
public function testLogFormattedMessages()
4737
{
48-
$this->logger->expects($this->once())->method('log')->with($this->level, LogMiddleware::LOG_MESSAGE, ['request' => null, 'response' => null]);
49-
50-
$middlewareExecutor($this);
51-
}
38+
/** @var ServerRequestInterface|MockObject $request */
39+
$request = $this->createMock(ServerRequestInterface::class);
5240

53-
public function middlewareProvider()
54-
{
55-
return [
56-
'double pass' => [function ($test) {
57-
return $test->executeDoublePassMiddleware();
58-
}],
59-
'single pass' => [function ($test) {
60-
return $test->executeSinglePassMiddleware();
61-
}],
62-
];
63-
}
41+
$this->logger->expects($this->once())->method('log')
42+
->with(LogLevel::ALERT, LogMiddleware::LOG_MESSAGE, ['request' => null, 'response' => null]);
6443

65-
protected function executeDoublePassMiddleware()
66-
{
67-
return call_user_func($this->middleware, $this->request, $this->response, $this->next);
68-
}
69-
70-
protected function executeSinglePassMiddleware()
71-
{
72-
return $this->middleware->process($this->request, $this->delegate);
44+
$this->middleware->process($request, $this->handler);
7345
}
7446
}

0 commit comments

Comments
 (0)