diff options
Diffstat (limited to 'src/Http/RequestInterface.php')
| -rw-r--r-- | src/Http/RequestInterface.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Http/RequestInterface.php b/src/Http/RequestInterface.php new file mode 100644 index 0000000..fe54667 --- /dev/null +++ b/src/Http/RequestInterface.php @@ -0,0 +1,31 @@ +<?php + +declare(strict_types=1); + +namespace BrettParson\MiniRoute\Http; + +/** + * Minimal HTTP request contract the router needs. + * + * Applications keep their own concrete Request class and implement this + * interface. The router only reads method/path and injects route parameters + * via withParams(); everything else stays application-owned. + */ +interface RequestInterface +{ + public function method(): string; + + public function path(): string; + + /** + * Get a route parameter extracted by the router (e.g. {slug}). + */ + public function param(string $name, string $default = ''): string; + + /** + * Return a copy of the request with route parameters attached. + * + * @param array<string, string> $params + */ + public function withParams(array $params): RequestInterface; +} |
