Skip to content

Commit

Permalink
Rename stack to stackMiddleware
Browse files Browse the repository at this point in the history
  • Loading branch information
trowski committed Jul 30, 2023
1 parent 41abe37 commit beceef6
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 13 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,10 @@ public function handleRequest(Request $request, RequestHandler $next): Response
`handleRequest` is the only method of the `Middleware` interface. If the `Middleware` doesn't handle the request itself, it should delegate the response creation to the received `RequestHandler`.

```php
function stack(RequestHandler $handler, Middleware ...$middleware): RequestHandler
function stackMiddleware(RequestHandler $handler, Middleware ...$middleware): RequestHandler
```

Multiple middlewares can be stacked by using `Amp\Http\Server\Middleware\stack()`, which accepts a `RequestHandler` as first argument and a variable number of `Middleware` instances. The returned `RequestHandler` will invoke each middleware in the provided order.
Multiple middlewares can be stacked by using `Amp\Http\Server\Middleware\stackMiddleware()`, which accepts a `RequestHandler` as first argument and a variable number of `Middleware` instances. The returned `RequestHandler` will invoke each middleware in the provided order.

```php
$requestHandler = new class implements RequestHandler {
Expand All @@ -202,7 +202,7 @@ $middleware = new class implements Middleware {
}
};

$stackedHandler = Middleware\stack($requestHandler, $middleware);
$stackedHandler = Middleware\stackMiddleware($requestHandler, $middleware);
$errorHandler = new DefaultErrorHandler();

// $logger is a PSR-7 logger instance.
Expand Down
2 changes: 1 addition & 1 deletion src/Middleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/**
* Middlewares allow pre-processing of requests and post-processing of responses.
*
* @see stack() for how to apply a middleware to a request handler.
* @see stackMiddleware() for how to apply a middleware to a request handler.
*/
interface Middleware
{
Expand Down
2 changes: 1 addition & 1 deletion src/Middleware/Internal/MiddlewareRequestHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
/**
* Wraps a request handler with a single middleware.
*
* @see stack()
* @see stackMiddleware()
* @internal
*/
final class MiddlewareRequestHandler implements RequestHandler
Expand Down
2 changes: 1 addition & 1 deletion src/Middleware/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* @return RequestHandler Wrapped request handler.
*/
function stack(RequestHandler $requestHandler, Middleware ...$middlewares): RequestHandler
function stackMiddleware(RequestHandler $requestHandler, Middleware ...$middlewares): RequestHandler
{
foreach (\array_reverse($middlewares) as $middleware) {
$requestHandler = new MiddlewareRequestHandler($middleware, $requestHandler);
Expand Down
8 changes: 4 additions & 4 deletions src/SocketHttpServer.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,8 @@ private static function createCompressionMiddleware(PsrLogger $logger): ?Compres
}

/**
* @param array<Middleware> $middleware Default middlewares. You may also use {@see Middleware\stack()} before
* passing the {@see RequestHandler} to {@see self::start()}.
* @param array<Middleware> $middleware Default middlewares. You may also use {@see Middleware\stackMiddleware()}
* before passing the {@see RequestHandler} to {@see self::start()}.
* @param array<non-empty-string>|null $allowedMethods Use null to disable request method filtering.
*/
public function __construct(
Expand Down Expand Up @@ -249,15 +249,15 @@ public function start(RequestHandler $requestHandler, ErrorHandler $errorHandler
$this->logger->warning("The 'xdebug' extension is loaded, which has a major impact on performance.");
}

$requestHandler = Middleware\stack($requestHandler, ...$this->middleware);
$requestHandler = Middleware\stackMiddleware($requestHandler, ...$this->middleware);

if ($this->allowedMethods !== null) {
$this->logger->notice(\sprintf(
'Request methods restricted to %s.',
\implode(', ', $this->allowedMethods),
));

$requestHandler = Middleware\stack(
$requestHandler = Middleware\stackMiddleware(
$requestHandler,
new AllowedMethodsMiddleware($errorHandler, $this->logger, $this->allowedMethods),
);
Expand Down
6 changes: 3 additions & 3 deletions test/Middleware/StackTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
use Amp\Http\Server\Response;
use Amp\PHPUnit\AsyncTestCase;
use League\Uri;
use function Amp\Http\Server\Middleware\stack;
use function Amp\Http\Server\Middleware\stackMiddleware;

class StackTest extends AsyncTestCase
{
public function testStackAppliesMiddlewaresInCorrectOrder(): void
{
$request = new Request($this->createMock(Client::class), "GET", Uri\Http::createFromString("/foobar"));

$stack = stack(new ClosureRequestHandler(function (Request $request) {
$stack = stackMiddleware(new ClosureRequestHandler(function (Request $request) {
$response = new Response(HttpStatus::OK, [], "OK");
$response->setHeader("stack", $request->getAttribute(StackTest::class));

Expand All @@ -45,6 +45,6 @@ public function handleRequest(Request $request, RequestHandler $requestHandler):
public function testEmptyMiddlewareSet(): void
{
$mock = $this->createMock(RequestHandler::class);
self::assertSame($mock, stack($mock));
self::assertSame($mock, stackMiddleware($mock));
}
}

0 comments on commit beceef6

Please sign in to comment.