-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
82 lines (50 loc) · 2.06 KB
/
index.php
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
81
82
<?php
require __DIR__ . '/vendor/autoload.php';
use Dotenv\Dotenv;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
use Symfony\Component\HttpKernel\Controller\ControllerResolver;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\Routing\Matcher\UrlMatcher;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
//$controller = new CocheController;
/*
$array_rutas = array_filter(explode("/", $_SERVER["REQUEST_URI"]));
if(isset($array_rutas[1]) && $array_rutas[1] == "Coche" && is_numeric($array_rutas[2])){
$controller->verCoche($array_rutas[2]);
} elseif(isset($array_rutas[1]) && $array_rutas[1] == "borrarcoche" && is_numeric($array_rutas[2])){
$controller->deleteCoche($array_rutas[2]);
} else {
$controller->index();
}
*/
$request = Request::createFromGlobals();
$routes = include __DIR__ . '/src/routes/web.php';
$context = new RequestContext();
$context->fromRequest($request);
// Routing can match routes with incoming requests
$matcher = new UrlMatcher($routes, $context);
//dump($matcher);
//$parameters = $matcher->match($context->getPathInfo());
//$urlGenerator = new UrlGenerator($routes, $context);
//dump($parameters);
//dump($_SERVER);
//$controllerClass = $parameters['_controller'][0];
//$controllerAction = $parameters['_controller'][1];
//$id = isset($parameters['id']) ? $parameters['id'] : '';
//$controller = new $controllerClass();
$controllerResolver = new ControllerResolver();
$argumentResolver = new ArgumentResolver();
try{
$request->attributes->add($matcher->match($request->getPathInfo())); // va a buscar la ruta
$controller = $controllerResolver->getController($request);
$arguments = $argumentResolver->getArguments($request, $controller);
call_user_func_array($controller, $arguments);
} catch (ResourceNotFoundException){
echo 'Esta página no existe, se redireccionará.';
header('refresh:3;url=/');
}catch(Exception $e){
echo sprintf('Error: %s', $e);
};