29 lines
		
	
	
		
			728 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			728 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class Router {
 | 
						|
    private $routes = [];
 | 
						|
 | 
						|
    public function add($route, $action) {
 | 
						|
        $this->routes[$route] = $action;
 | 
						|
    }
 | 
						|
 | 
						|
    public function dispatch() {
 | 
						|
        $uri = $_SERVER['REQUEST_URI'];
 | 
						|
        $uri = parse_url($uri, PHP_URL_PATH);
 | 
						|
 | 
						|
        if (array_key_exists($uri, $this->routes)) {
 | 
						|
            $action = $this->routes[$uri];
 | 
						|
            list($controllerName, $methodName) = explode('@', $action);
 | 
						|
 | 
						|
            require_once controllers . "{$controllerName}.php";
 | 
						|
 | 
						|
            $controller = new $controllerName();
 | 
						|
            $controller->$methodName();
 | 
						|
        } else {
 | 
						|
            http_response_code(404);
 | 
						|
            $view = new View();
 | 
						|
            $view->render('errors/404');
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |