/+junk/StupidMVC

To get this branch, use:
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
}