Skip to content
Snippets Groups Projects
Commit 15ce9b94 authored by root's avatar root
Browse files

Implement connection between routing and controller

parent cbbfa355
Branches
1 merge request!1Project structure
......@@ -6,4 +6,5 @@
require __DIR__.'/../src/app.php';
$App = DagoJek::Instance();
$App->prepareRouting();
$App->Start();
\ No newline at end of file
<?php
/**
* DagoJek is a singleton class that representing DagoJek application
*/
class DagoJek {
private $routingTable = array();
private function __construct() {
// empty constructor
}
......@@ -26,6 +32,10 @@ class DagoJek {
}
}
public function prepareRouting() {
require __DIR__.'/route.php';
}
private function getCurrentUri() {
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
......@@ -34,26 +44,20 @@ class DagoJek {
return $uri;
}
public function addRoute($route, $function) {
$data = array(
$route => $function,
);
$this->routingTable += $data;
}
public function Start() {
$base_url = $this->getCurrentUri();
switch ($base_url) {
case "/" :
echo "Login page";
break;
case "/login" :
MainController::LoginHandler();
break;
case "/register" :
echo "Register page";
break;
case "/profil" :
echo "Profil page";
break;
default :
echo "404 not found";
if (array_key_exists ($base_url, $this->routingTable)) {
$this->routingTable[$base_url]();
} else {
die ("404 Page not Found");
}
}
}
?>
\ No newline at end of file
......@@ -6,5 +6,8 @@ class MainController {
echo "This is login handler";
}
public static function DefaultHandler() {
echo "This is default handler";
}
}
\ No newline at end of file
<?php
// ---------------------------- LIST OF ALL BASIC ROUTES ----------------------------
$AppInstance = Dagojek::Instance();
$AppInstance->addRoute("/", 'MainController::LoginHandler');
$AppInstance->addRoute("/login", 'MainController::LoginHandler');
$AppInstance->addRoute("/register", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/profil", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/profil/edit", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/history", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/order/", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/order/select", 'MainController::DefaultHandler');
$AppInstance->addRoute("/main/order/finish", 'MainController::DefaultHandler');
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment