diff options
Diffstat (limited to 'src/Contracts')
| -rw-r--r-- | src/Contracts/Middleware.php | 16 | ||||
| -rw-r--r-- | src/Contracts/Strategy.php | 10 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/Contracts/Middleware.php b/src/Contracts/Middleware.php new file mode 100644 index 0000000..96037c8 --- /dev/null +++ b/src/Contracts/Middleware.php @@ -0,0 +1,16 @@ +<?php + +declare(strict_types=1); + +namespace Lightscale\Router\Contracts; + +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; + +interface Middleware +{ + public function handle( + ServerRequestInterface $request, + callable $next, + ): ResponseInterface; +} diff --git a/src/Contracts/Strategy.php b/src/Contracts/Strategy.php index bb877c1..fa41819 100644 --- a/src/Contracts/Strategy.php +++ b/src/Contracts/Strategy.php @@ -10,6 +10,16 @@ use Psr\Http\Message\ResponseInterface; interface Strategy { + /** + * @param Middleware[] $middlewares + * @param callable(RequestInterface): ResponseInterface $handler + */ + public function runMiddleware( + RequestInterface $request, + array $middlewares, + callable $handler, + ): ResponseInterface; + public function runRoute(RouteCall $call): ResponseInterface; public function notFound(RequestInterface $request): ResponseInterface; |
