Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (4)
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [QSA,L]
\ No newline at end of file
<?php
$env = getenv('DAGOJEK_ENV');
if (!$env || $env == "development") {
$env = "development";
error_reporting(E_ALL);
ini_set('display_errors', 1);
}
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
}
public static function Instance() {
static $instance = null;
if ($instance === null) {
$instance = new DagoJek();
}
$instance->includeAllController();
return $instance;
}
private function includeAllController() {
foreach (scandir(dirname(__FILE__)."/controller") as $filename) {
$path = dirname(__FILE__)."/controller" . '/' . $filename;
if (is_file($path)) {
require_once $path;
}
}
}
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));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
return $uri;
}
public function addRoute($route, $function) {
$data = array(
$route => $function,
);
$this->routingTable += $data;
}
public function Start() {
$base_url = $this->getCurrentUri();
if (array_key_exists ($base_url, $this->routingTable)) {
$this->routingTable[$base_url]();
} else {
die ("404 Page not Found");
}
}
}
<?php
class MainController {
public static function LoginHandler() {
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');