bzr branch
http://gegoxaren.bato24.eu/bzr/%2Bjunk/StupidMVC
|
1
by Gustav Hartvigsson
* initial code |
1 |
<?php
|
2 |
||
|
3
by Gustav Hatvigsson
* Made the router a class |
3 |
class Router { |
4 |
||
5 |
private $list_controllers = []; |
|
6 |
||
7 |
private $default_controller = null; |
|
8 |
||
9 |
public function register_controller ($controller_name) { |
|
10 |
if (isset ($list_controllers[$controller_name])) { |
|
11 |
return; |
|
12 |
}
|
|
13 |
||
14 |
require (APP_DIR . "Controllers" . DS . $controller_name . ".php"); |
|
15 |
||
16 |
$this->list_controllers[$controller_name] = $controller_name; |
|
17 |
||
18 |
}
|
|
19 |
||
20 |
public function register_default_controller ($controller_name) { |
|
21 |
if (isset($this->default_controller)) { |
|
22 |
return; |
|
23 |
}
|
|
24 |
$this->default_controller = $controller_name; |
|
25 |
$this->register_controller ($controller_name); |
|
26 |
}
|
|
27 |
||
28 |
public function route () { |
|
29 |
||
30 |
||
31 |
var_dump ($this->list_controllers); |
|
32 |
||
33 |
$url = ""; |
|
34 |
$method = "default_method"; |
|
35 |
$ctrl = $this->default_controller; |
|
36 |
$path = ""; |
|
37 |
||
38 |
$request_url = ''; |
|
39 |
if (isset($_SERVER['REQUEST_URI'])) { |
|
40 |
$request_url = $_SERVER['REQUEST_URI']; |
|
41 |
}
|
|
42 |
//echo "Request URL: " . $request_url . "\n";
|
|
43 |
$script_url = ''; |
|
44 |
if (isset($_SERVER['PHP_SELF'])){ |
|
45 |
$script_url = $_SERVER['PHP_SELF']; |
|
46 |
}
|
|
47 |
//echo "Script URL: " . $script_url . "\n";
|
|
48 |
||
49 |
if($request_url != $script_url) { |
|
50 |
$url = trim(preg_replace('/'. str_replace('/', '\/', str_replace('index.php', '', $script_url)) .'/', '', $request_url, 1), '/'); |
|
51 |
//echo "url: " . $url . "\n";
|
|
52 |
}
|
|
53 |
||
54 |
$parts = explode ('/', $url ); |
|
55 |
||
56 |
var_dump ($parts); |
|
57 |
||
58 |
if (isset ($parts[0]) && $parts[0] != '') { |
|
59 |
$ctrl = $parts[0]; |
|
60 |
}
|
|
61 |
||
62 |
if (isset ($parts[1]) && $parts[1] != '') { |
|
63 |
$method = $parts[1]; |
|
64 |
}
|
|
65 |
||
66 |
var_dump ($ctrl); |
|
67 |
var_dump ($method); |
|
68 |
||
69 |
if(isset ($this->list_controllers[$ctrl])) { |
|
70 |
$controller_obj = new $ctrl (); |
|
71 |
$ctrl_method_list = $controller_obj->get_methods(); |
|
72 |
if ($method != "default_method" && |
|
73 |
isset($ctrl_method_list[$method])) { |
|
74 |
$controller_obj->$ctrl_method_list[$method] (array_slice($parts, 2)); |
|
75 |
return; |
|
76 |
}
|
|
77 |
$controller_obj->default_method (); |
|
78 |
}
|
|
79 |
||
80 |
}
|
|
|
1
by Gustav Hartvigsson
* initial code |
81 |
}
|