@@ -5,12 +5,44 @@ public static function get($section,$prop=NULL){
5
5
return $ GLOBALS ['CONFIG ' ][$ section ];
6
6
}
7
7
}
8
+ class HttpRequest {
9
+ private static $ request ;
10
+ private $ map = array ();
11
+ public function get ($ key ){
12
+ if (isset ($ this ->map [$ key ])){
13
+ return $ this ->map [$ key ];
14
+ } else if (isset ($ _REQUEST [$ key ])){
15
+ return $ _REQUEST [$ key ];
16
+ } else {
17
+ return NULL ;
18
+ }
19
+ }
20
+ public function set ($ key ,$ value ){
21
+ $ this ->map [$ key ] = $ value ;
22
+ return $ this ;
23
+ }
24
+ public function getAllParams (){
25
+ return $ this ->map ;
26
+ }
27
+ public function loadParams ($ params ){
28
+ $ this ->map = array_merge ($ this ->map ,$ params );
29
+ return $ this ;
30
+ }
31
+ public static function getInstance (){
32
+ if (!isset (self ::$ request )){
33
+ self ::$ request = new HttpRequest ();
34
+ }
35
+ return self ::$ request ;
36
+ }
37
+ }
38
+
39
+
8
40
class RudraX {
9
41
public static $ REQUEST_MAPPED = FALSE ;
10
42
public static function setProjectConfiguration ($ file ){
11
43
ob_start ();
12
44
session_start ();
13
- $ GLOBALS ['CONFIG ' ] = parse_ini_file ($ file , true );
45
+ $ GLOBALS ['CONFIG ' ] = parse_ini_file ($ file , TRUE );
14
46
set_include_path ($ GLOBALS ['CONFIG ' ]['WORK_DIR ' ]);
15
47
define ("BASE_PATH " , dirname (__FILE__ ) );
16
48
define ("LOG_PATH " , $ GLOBALS ['CONFIG ' ]['LOG_PATH ' ]);
@@ -23,12 +55,12 @@ public static function setProjectConfiguration($file){
23
55
define ( 'DEBUG_ENABLED ' , $ GLOBALS ['CONFIG ' ]['DEBUG_ENABLED ' ] );
24
56
define ( 'MODEL_PATH ' , $ GLOBALS ['CONFIG ' ]['MODEL_PATH ' ] );
25
57
define ( 'CONTROLLER_PATH ' , $ GLOBALS ['CONFIG ' ]['CONTROLLER_PATH ' ] );
26
- define ('Q ' ,(isset ($ _REQUEST ['q ' ]) ? $ _REQUEST ['q ' ] : null ));
27
-
58
+ define ('Q ' ,(isset ($ _REQUEST ['q ' ]) ? $ _REQUEST ['q ' ] : NULL ));
59
+
28
60
define ( 'CONTEXT_PATH ' , (
29
- (Q==null ) ? strstr ($ _SERVER ['REQUEST_URI ' ],"? " .$ _SERVER ['QUERY_STRING ' ],true ) : strstr ($ _SERVER ['REQUEST_URI ' ],Q,true )
61
+ (Q==NULL ) ? strstr ($ _SERVER ['REQUEST_URI ' ],"? " .$ _SERVER ['QUERY_STRING ' ],TRUE ) : strstr ($ _SERVER ['REQUEST_URI ' ],Q,true )
30
62
));
31
- Console::set (true );
63
+ Console::set (TRUE );
32
64
}
33
65
public static function includeTemplates (){
34
66
self ::includeUser ();
@@ -61,10 +93,16 @@ public static function getDB($configname){
61
93
}
62
94
public static function getArgsArray ($ reflectionMethod ,$ argArray ){
63
95
$ arr = array ();
96
+ $ request = HttpRequest::getInstance ();
64
97
foreach ($ reflectionMethod ->getParameters () as $ key => $ val ){
65
- $ arr [$ val ->getName ()] = isset ($ argArray [$ val ->getName ()]) ?
66
- $ argArray [$ val ->getName ()] : (isset ($ _REQUEST [$ val ->getName ()])
67
- ? $ _REQUEST [$ val ->getName ()] : ($ val ->isDefaultValueAvailable () ? $ val ->getDefaultValue () : NULL ));
98
+ $ arr [$ val ->getName ()] = isset ($ argArray [$ val ->getName ()])
99
+ ? $ argArray [$ val ->getName ()]
100
+ :(($ request ->get ($ val ->getName ()))
101
+ ? $ request ->get ($ val ->getName ())
102
+ :($ val ->isDefaultValueAvailable ()
103
+ ? $ val ->getDefaultValue () : NULL
104
+ )
105
+ );
68
106
}
69
107
return $ arr ;
70
108
}
@@ -106,10 +144,13 @@ public static function mapRequest ($mapping,$callback){
106
144
preg_match ("/ " .$ mapper ."/ " ,str_replace ( array ("/ " ),
107
145
array ("# " ),Q),$ varmap );
108
146
147
+ $ request = HttpRequest::getInstance ()->loadParams ($ varmap );
148
+ $ argArray = self ::getArgsArray (new ReflectionFunction ($ callback ),$ varmap );
149
+ $ request ->loadParams ($ argArray );
150
+
109
151
if (count ($ varmap )>0 ){
110
152
self ::$ REQUEST_MAPPED = TRUE ;
111
- return call_user_func_array ($ callback ,
112
- self ::getArgsArray (new ReflectionFunction ($ callback ),$ varmap ));
153
+ return call_user_func_array ($ callback , $ argArray );
113
154
}
114
155
}
115
156
@@ -119,4 +160,5 @@ public static function getDB($configname){
119
160
return RudraX::getDB ($ configname );
120
161
}
121
162
}
163
+
122
164
?>
0 commit comments