This repository was archived by the owner on Dec 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
executable file
·98 lines (84 loc) · 2.59 KB
/
index.php
File metadata and controls
executable file
·98 lines (84 loc) · 2.59 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/*
* index.php
* @note : bootstrap
*/
try
{
// includes
require_once( './config.php' );
require_once( DIR_FRAMEWORK.'Router.php' );
require_once( DIR_FRAMEWORK.'Controller.php' );
require_once( DIR_FRAMEWORK.'Model.php' );
require_once( DIR_FRAMEWORK.'View.php' );
require_once( DIR_FRAMEWORK.'Json.php' );
require_once( DIR_FRAMEWORK.'libs/Dispatch/Dispatch.php' );
require_once( DIR_FRAMEWORK.'libs/Twig/Autoloader.php' );
require_once( DIR_FRAMEWORK.'libs/Idiorm/idiorm.php' );
// config
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem( DIR_VIEWS );
$twig = new Twig_Environment($loader, array(
'debug' => true
));
$loader->addPath( DIR_VIEWS."common/" , "common" );
config( 'url' , ARRAY_BASE_PATH );
// init
$router = new Router();
$router->set_pdo( HOST, USER, PASS, BASE );
$pdo = $router->get_pdo();
$routes = parse_ini_file( './routes.ini' );
foreach ($routes["routes"] as $key => &$value) {
$value = explode('-', $value);
// route définie dans le fichier routes.ini
map($value[0], $value[1], function ( $params ) use ( $value , $router ) {
$_REQUEST = $params;
$router->_controller = $value[2];
$router->_action = $value[3];
$router->_args = $params;
$router->route();
});
// route implicite
map(function () use ( $router) {
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$path = trim($path, '/');
# strip url from request URI
if ($base = config('url')) {
$base = trim(parse_url($base, PHP_URL_PATH), '/');
$path = preg_replace('@^'.preg_quote($base).'@', '', $path);
}
// couper l'url de la forme : /mon/url
$data = explode( '/' , $path );
$arr = array_reverse( array_filter( $data ) );
// récupérer le controleur (1er element du tableau)
$router->_controller = array_pop( $arr );
// récupérer l'action (2eme element du tableau)
$router->_action = array_pop( $arr );
// tous les autres elements sont des parametres sous la forme : monparametre:mavaleur
foreach( $arr as $cell )
{
// creer un tableau depuis la string "monparametre:mavaleur"
$params = explode( ':' , $cell );
// $params[0] = "monparamtre"
// $params[1] = "mavaleur"
// on ré-injecte les parametres dans le tableau $_REQUEST
$_REQUEST[ $params[0] ] = $params[1];
}
$router->_args = $_REQUEST;
$router->route();
});
// route error
map(404 , function ($code, $res) {
var_dump($code,$res);
});
}
// start!
dispatch();
}
catch( Exception $e )
{
echo "<pre>";
var_dump($e);
echo "</pre>";
}
?>