Repository navigation
Expand file tree
/
Copy pathRouterInterface.php
More file actions
80 lines (72 loc) · 2.16 KB
/
Copy pathRouterInterface.php
File metadata and controls
80 lines (72 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/*
* This file is part of Berlioz framework.
*
* @license https://opensource.org/licenses/MIT MIT License
* @copyright 2020 Ronan GIRON
* @author Ronan GIRON <https://github.com/ElGigi>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code, to the root.
*/
declare(strict_types=1);
namespace Berlioz\Router;
use Berlioz\Router\Exception\RoutingException;
use Psr\Http\Message\ServerRequestInterface;
/**
* Interface RouterInterface.
*
* @package Berlioz\Router
*/
interface RouterInterface extends RouteSetInterface
{
/**
* Generate route.
*
* @param string|RouteInterface $route
* @param array|RouteAttributes $parameters
*
* @return string
* @throws RoutingException
*/
public function generate(string|RouteInterface $route, array|RouteAttributes $parameters = []): string;
/**
* Finalize path.
*
* Prepends the reverse-proxy prefix (`X-Forwarded-Prefix`) to the given path
* when the request comes from a trusted proxy.
*
* @param string $path
* @param array|null $serverParams Explicit parameters; null uses the current context, then `$_SERVER`
*
* @return string
*/
public function finalizePath(string $path, ?array $serverParams = null): string;
/**
* Set the request context used to finalize paths and generate URLs.
*
* The context must not be serialized. An empty array disables fallback to globals;
* null clears the context and restores the `$_SERVER` fallback.
*
* @param array|null $serverParams Current request server parameters
*
* @return void
*/
public function setServerParams(?array $serverParams): void;
/**
* Is valid request?
*
* @param ServerRequestInterface|string $request
*
* @return bool
*/
public function isValid(ServerRequestInterface|string $request): bool;
/**
* Handle server request.
*
* @param ServerRequestInterface $request
*
* @return RouteInterface|null
*/
public function handle(ServerRequestInterface &$request): ?RouteInterface;
}