/+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
  
4 by Gustav Hatvigsson
* Added FourOhFour.php
9
  private $four_oh_four_controller = null;
10
  
11
  public function
12
  register_controller ($controller_name) {
3 by Gustav Hatvigsson
* Made the router a class
13
    if (isset ($list_controllers[$controller_name])) {
14
      return;
15
    }
16
    
17
    require (APP_DIR . "Controllers" . DS . $controller_name  . ".php");
18
    
19
    $this->list_controllers[$controller_name] = $controller_name;
20
    
21
  }
22
  
4 by Gustav Hatvigsson
* Added FourOhFour.php
23
  public function
24
  register_404_controller ($controller_name) {
25
    if (isset($this->four_oh_four_controller)){
26
      return;
27
    }
28
    $this->four_oh_four_controller = $controller_name;
29
    $this->register_controller ($controller_name);
30
  }
31
  
3 by Gustav Hatvigsson
* Made the router a class
32
  public function register_default_controller ($controller_name) {
33
    if (isset($this->default_controller)) {
34
      return;
35
    }
36
    $this->default_controller = $controller_name;
37
    $this->register_controller ($controller_name);
38
  }
39
  
40
  public function route () {
41
    
42
    
43
    var_dump ($this->list_controllers);
44
    
45
    $url = "";
46
    $method = "default_method";
47
    $ctrl = $this->default_controller;
48
    $path = "";
49
    
50
    $request_url = '';
51
    if (isset($_SERVER['REQUEST_URI'])) {
52
      $request_url = $_SERVER['REQUEST_URI'];
53
    }
54
    //echo "Request URL: " . $request_url . "\n";
55
    $script_url = '';
56
    if (isset($_SERVER['PHP_SELF'])){
57
      $script_url = $_SERVER['PHP_SELF'];
58
    }
59
    //echo "Script URL: " . $script_url . "\n";
60
    
61
    if($request_url != $script_url) {
4 by Gustav Hatvigsson
* Added FourOhFour.php
62
      $url = trim(preg_replace('/'.
63
        str_replace('/', '\/',
64
          str_replace('index.php', '', $script_url))
65
            .'/', '', $request_url, 1), '/');
3 by Gustav Hatvigsson
* Made the router a class
66
      //echo "url: " . $url . "\n";
67
    }
68
    
69
    $parts = explode ('/', $url );
70
    
71
    var_dump ($parts);
72
    
73
    if (isset ($parts[0]) && $parts[0] != '') {
74
      $ctrl = $parts[0];
75
    }
76
    
77
    if (isset ($parts[1]) && $parts[1] != '') {
78
      $method = $parts[1];
79
    }
80
    
81
    var_dump ($ctrl);
82
    var_dump ($method);
83
    
84
    if(isset ($this->list_controllers[$ctrl])) {
85
      $controller_obj = new $ctrl ();
86
      $ctrl_method_list = $controller_obj->get_methods();
87
      if ($method != "default_method" &&
88
          isset($ctrl_method_list[$method])) {
89
        $controller_obj->$ctrl_method_list[$method] (array_slice($parts, 2));
90
        return;
4 by Gustav Hatvigsson
* Added FourOhFour.php
91
      } 
92
      $controller_obj->default_method (NULL);
93
      return;
3 by Gustav Hatvigsson
* Made the router a class
94
    }
95
    
4 by Gustav Hatvigsson
* Added FourOhFour.php
96
    $controller_obj = new $this->four_oh_four_controller ();
97
    $controller_obj->default_method ($url);
98
    
3 by Gustav Hatvigsson
* Made the router a class
99
  }
1 by Gustav Hartvigsson
* initial code
100
}