summaryrefslogtreecommitdiff
path: root/public/index.php
blob: 9dea2179363a8f72873a7886e2989b3015a7d51c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/** anom
 * ANOther MVC framefork ///////////////////////////////////////////////////////
 * -----------------------------------------------------------------------------
 * 
 * This is where the whole thing stats.
 * Let's keep it simple and clear
 * 
 * anom is an(other) Object-Oriented MVC php-framework.
 * It is a super-light, fast and extensible development
 * tool.
 * 
 * Contains implementations of almost anything you need
 * to start and optimize a server-based web-application.
 * And as long as you write code using secure practices,
 * it shall be secure.
 * 
 * Copyleft: George Halkiadakis
 * Licence: BSD
 * 
 * \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 * -----------------------------------------------------------------------------
 */

// specify base paths
// -----------------------------------------------------------------------------

$dir = explode('/', __DIR__);
$pub = array_pop($dir);

define('APP_ROOT', implode('/',$dir));      // root of application (public's parent)

define('WEB_ROOT', APP_ROOT.'/'.$pub);      // root of public directory



// Load parametres:
// contants and constant arrays
// -----------------------------------------------------------------------------

require_once WEB_ROOT.'/app/config/setup_framework.php';        // application constants



// Enable Autoloader 
// -----------------------------------------------------------------------------
require_once AUTOLOADER;



// Enable sessions
// -----------------------------------------------------------------------------
$session = new (SESSION_DRIVER)();	                // Start a new session



// prepare output control and benchmarking
// -----------------------------------------------------------------------------
ob_start();                                         // handle output
if (!PRODUCTION)   Benchmark::add_spot('start');    // benchmark request's life



// Initialize Application
// finalize framework; handle credentials; setup app-engine; insert routes
// -----------------------------------------------------------------------------

require_once APPLICATION_BOOTSTRAP;


// Application is ready!
// -----------------------------------------------------------------------------

Route::run(Registry::get('REQUEST'));               // Run baby, run!



if (!PRODUCTION)   Benchmark::add_spot('end');      // request ended
if (!PRODUCTION)   Benchmark::render_report();      // echo benchmark report
ob_flush();                                         // flush output