-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRouterInterface.php
More file actions
55 lines (49 loc) · 1.32 KB
/
RouterInterface.php
File metadata and controls
55 lines (49 loc) · 1.32 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
<?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;
/**
* 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;
}