-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRouter.php
More file actions
29 lines (26 loc) · 897 Bytes
/
Router.php
File metadata and controls
29 lines (26 loc) · 897 Bytes
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
<?php
class Router
{
private static array $routes = [
'LeadsController' => ['add'],
'ContactsController' => ['add'],
];
private static string $contrNamespace = 'controllers\\';
public static function init(Request $request)
{
$uri = $request->getUri();
$uri = explode('/', $uri);
$contrName = ucfirst($uri[1]).'Controller';
$fileContr = __DIR__.'/controllers/'.$contrName.'.php';
$method = explode('?', $uri[2])[0];
var_dump($method);
if (file_exists($fileContr) && in_array($method,self::$routes[$contrName])) {
$contrName = self::$contrNamespace.$contrName;
$oContr = new $contrName($request);
$oContr->$method();
} else {
$defaultContr = self::$contrNamespace.'Controller';
$oContr = new $defaultContr($request);
}
}
}