Skip to content
Snippets Groups Projects
Commit 56bcd03a authored by Muhammad Iqbal Al Khowarizmi's avatar Muhammad Iqbal Al Khowarizmi
Browse files

Merge branch 'project_structure' into 'master'

Project structure

See merge request !1
parents 493d676d 410e4a27
Branches
1 merge request!1Project structure
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');
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