Skip to content

Commit 94f5a9d

Browse files
committed
url param access
1 parent 1e36030 commit 94f5a9d

File tree

3 files changed

+60
-21
lines changed

3 files changed

+60
-21
lines changed

Diff for: app/handler/Index.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@
88

99
class Index extends AbstractHandler {
1010

11-
public function invokeHandler($viewModel,$header) {
11+
public function invokeHandler($viewModel,$header,$f) {
1212
$header->import('bootstrap');
1313
$header->import('utils');
1414
$header->import('product_login');
1515

16-
1716
if (isset($_REQUEST['uname'])) {
1817
$username = $_POST['uname'];
1918
$password = $_POST['pass'];
@@ -40,9 +39,6 @@ public function invokeHandler($viewModel,$header) {
4039
$viewModel->assign("option_selected", "NE");
4140
return "home/home";
4241
} else {
43-
44-
45-
4642
return "sample/login";
4743
}
4844
}

Diff for: lib/rudra/rudrax.php

+52-10
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,44 @@ public static function get($section,$prop=NULL){
55
return $GLOBALS['CONFIG'][$section];
66
}
77
}
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+
840
class RudraX {
941
public static $REQUEST_MAPPED = FALSE;
1042
public static function setProjectConfiguration($file){
1143
ob_start ();
1244
session_start ();
13-
$GLOBALS ['CONFIG'] = parse_ini_file ($file, true );
45+
$GLOBALS ['CONFIG'] = parse_ini_file ($file, TRUE );
1446
set_include_path ($GLOBALS['CONFIG']['WORK_DIR']);
1547
define("BASE_PATH", dirname(__FILE__) );
1648
define("LOG_PATH", $GLOBALS ['CONFIG']['LOG_PATH']);
@@ -23,12 +55,12 @@ public static function setProjectConfiguration($file){
2355
define ( 'DEBUG_ENABLED', $GLOBALS ['CONFIG']['DEBUG_ENABLED'] );
2456
define ( 'MODEL_PATH', $GLOBALS ['CONFIG']['MODEL_PATH'] );
2557
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+
2860
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)
3062
));
31-
Console::set(true);
63+
Console::set(TRUE);
3264
}
3365
public static function includeTemplates(){
3466
self::includeUser();
@@ -61,10 +93,16 @@ public static function getDB($configname){
6193
}
6294
public static function getArgsArray($reflectionMethod,$argArray){
6395
$arr = array();
96+
$request = HttpRequest::getInstance();
6497
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+
);
68106
}
69107
return $arr;
70108
}
@@ -106,10 +144,13 @@ public static function mapRequest ($mapping,$callback){
106144
preg_match("/".$mapper."/",str_replace( array("/"),
107145
array("#"),Q),$varmap);
108146

147+
$request = HttpRequest::getInstance()->loadParams($varmap);
148+
$argArray = self::getArgsArray(new ReflectionFunction($callback),$varmap);
149+
$request->loadParams($argArray);
150+
109151
if(count($varmap)>0){
110152
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);
113154
}
114155
}
115156

@@ -119,4 +160,5 @@ public static function getDB($configname){
119160
return RudraX::getDB($configname);
120161
}
121162
}
163+
122164
?>

Diff for: web/index.php

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@
1616
RudraX::invokePage(function($q){
1717

1818
RudraX::mapRequest("page/{p}",function($q,$f,$d,$p="index"){
19-
echo $p;
19+
//echo $p;
2020
global $controller;
2121
$controller = new PageController();
2222
$controller->invoke($p);
2323
});
2424

2525
RudraX::mapRequest("user/{u}/d/{d}/{f}",function($q,$u,$f,$d,$t="index"){
26-
echo "user/{u}/d/{d}/{f}==>u=".$u;
27-
//global $controller;
28-
//$controller = new PageController();
29-
//$controller->invoke($t);
26+
//echo "user/{u}/d/{d}/{f}==>u=".$u;
27+
//echo "<br/>f=".$f;
28+
global $controller;
29+
$controller = new PageController();
30+
$controller->invoke($t);
3031
});
3132

3233
RudraX::mapRequest("user/{u}/",function($q,$u,$f,$d,$t="index"){
33-
echo "user/{u}/==>u=".$u;
34+
//echo "user/{u}/==>u=".$u;
3435
//global $controller;
3536
//$controller = new PageController();
3637
//$controller->invoke($u);

0 commit comments

Comments
 (0)