public static function checkRequest($type, $key, $validation, $strict = false) { switch ($type) { case 'server': $value = Request::getServer($key); break; case 'post': $value = Request::getPost($key); break; } if ($value == false) { return false; } switch ($validation) { case 'boolean': return self::isBoolean($value, $strict); case 'date': return self::isDate($value); case 'integer': return self::isInteger($value, $strict); case 'ip': return self::isIP($value); case 'string': return self::isString($value, $strict); case 'url': return self::isURL($value, $strict); case 'name': return self::isName($value, $strict); case 'email': return self::isEmail($value, $strict); } return false; }
private function direct() { $link_map = $this->construct_direct_link_map(); $uri = Request::getServer('REQUEST_URI'); if (array_key_exists($uri, $link_map)) { $controller = Loader::loadNew('controller', $link_map[$uri]); } else { $controller = Loader::loadNew('controller', 'Error404Controller'); } $controller->activate(); }
public function route(Request $request) { $parts = explode('/', $request->getServer('REQUEST_URI')); unset($parts[0]); $controller = array_shift($parts); if (!isset($this->values[$controller])) { throw new RouterException(); } if (count($parts) % 2 != 0) { throw new RouterException(); } $keys = array_keys($parts); $count = count($keys); for ($i = 0; $i < $count; $i += 2) { $request->set($parts[$keys[$i]], $parts[$keys[$i + 1]]); } return $this->values[$controller]; }
static function route(Request $request) { $url = explode('?', $request->getServer('REQUEST_URI')); $path = $url[0]; while (substr($path, -1) == '/') { $path = mb_substr($path, 0, mb_strlen($path) - 1); } $path_components = explode('/', $path); $pathMethodArray = explode('.', $path_components[count($path_components) - 1]); if (count($pathMethodArray) == 2) { $path_components[count($path_components) - 1] = $pathMethodArray[0]; $path_components[] = $pathMethodArray[1]; } //Loop through all the routes we defined in route.php, and try to find one that matches our request foreach ($GLOBALS['routes'] as $route => $controllerString) { $route_components = explode("/", $route); $routeMethodArray = explode('.', $route_components[count($route_components) - 1]); if (count($routeMethodArray) == 2) { $route_components[count($route_components) - 1] = $routeMethodArray[0]; $route_components[] = $routeMethodArray[1]; } $action = "index"; $module = ''; $i = 0; $objects = array(); $goodRoute = true; $forceRoute = false; $path_components = array_pad($path_components, count($route_components), ''); $parameters = array(); //Handle routes that call a specific action $controller_action_array = explode(":", $controllerString); if (count($controller_action_array) == 2) { $controller = $controller_action_array[0]; $action = $controller_action_array[1]; } elseif (count($controller_action_array) == 3) { $module = $controller_action_array[0]; $controller = $controller_action_array[1]; $action = $controller_action_array[2]; } elseif (count($controller_action_array) == 1) { $controller = $controller_action_array[0]; } //Loop through each component of this route until we find a part that doesn't match, or we run out of url foreach ($route_components as $route_component) { //This part of the route is a named parameter if (substr($route_component, 0, 1) == ":") { $parameters[substr($route_component, 1)] = $path_components[$i]; //This part of the route is an action for a controller } elseif ($route_component == "[action]") { if ($path_components[$i] != "") { $action = str_replace("-", "_", $path_components[$i]); } } elseif ($route_component == "[controller]") { if ($path_components[$i] != "") { $controller = str_replace("-", "_", $path_components[$i]); } } elseif ($route_component == "*") { echo "Bad match: " . str_replace("-", "_", $route_component) . " != " . $path_components[$i] . "<br />"; $forceRoute = true; } elseif ($route_component != $path_components[$i] && str_replace("-", "_", $route_component) != $path_components[$i]) { echo "Bad match: " . str_replace("-", "_", $route_component) . " != " . $path_components[$i] . "<br />"; $goodRoute = false; break; } $i++; } //This route is a match for our request, let's get the controller working on it if ($forceRoute || $goodRoute && ($i >= count($path_components) || $path_components[$i] == "")) { $request->set('module', $module); $request->set('controller', $controller); $request->set('action', $action); foreach ($parameters as $key => $value) { $request->set($key, $value); } return $request; } } return $request; }
/** * @param $html */ public function appendRendarDebug(&$html) { $tmp = <<<'EOM' {strip} <style type="text/css"> .pmp_debug{ padding:60px 0 0 ; } .pmp_debug_area{ font-size:12px; line-height:140%; position: fixed; left: 0; bottom:0; width: 100%; padding:0 0 0 60px; color:#fff; background: #555; border-top: solid 1px #333; z-index:10000; } .pmp_debug_menu{ float: left; white-space: nowrap; border-right:solid 1px #888; position: relative; } .pmp_debug_menu .pmp_menu{ padding: 12px 20px; display: block; cursor:pointer; } .pmp_debug_menu .pmp_menu_value{ position: absolute; display: none; left: 0; bottom: 42px; background: #FFF; border:solid 1px #666; padding:20px; margin:0; z-index:10; list-style: none; min-width:500px; max-height:400px; overflow:auto; color:#333; } .pmp_debug_menu .pmp_menu_value li{ padding:3px 0px; margin:0; border-top:solid 1px #CCC; list-style: none; } .pmp_debug_menu .pmp_menu_value li:first-child{ border-top:none; } .pmp_debug_menu:hover .pmp_menu_value{ display: block; } </style> <div class="pmp_debug"> <div class="pmp_debug_area"> <div class="pmp_debug_menu"> <div class="pmp_menu">Server</div> <ul class="pmp_menu_value"> {foreach $SERVER as $key => $val} <li>{$key} : {if(is_array($val))}{dump($val)}{else}{$val}{/if}</li> {/foreach} </ul> </div> <div class="pmp_debug_menu"> <div class="pmp_menu">Request</div> <ul class="pmp_menu_value"> {foreach $REQUEST as $key => $val} <li>{$key} : {if(is_array($val))}{dump($val)}{else}{$val}{/if}</li> {/foreach} </ul> </div> <div class="pmp_debug_menu"> <div class="pmp_menu">Get</div> <ul class="pmp_menu_value"> {foreach $GET as $key => $val} <li>{$key} : {if(is_array($val))}{dump($val)}{else}{$val}{/if}</li> {/foreach} </ul> </div> <div class="pmp_debug_menu"> <div class="pmp_menu">Session</div> <div class="pmp_menu_value"> <pre>{dump($SESSION)}</pre> </div> </div> </div> </div> {/strip} EOM; $tp = new Template(); // template value $tp->assign("SERVER", Request::getServer()->getVars()); $tp->assign("REQUEST", Request::getRequest()->getVars()); $tp->assign("GET", Request::getQuery()->getVars()); $tp->assign("SESSION", $_SESSION); // template set $tp->setTemplateStr($tmp); $html = preg_replace("/(<\\/body>)/", $tp->get_display_template(true) . "\$1", $html); }
public function testGetServer() { $this->assertThat($this->object->getServer('UNDEFINED'), $this->equalTo(null)); $this->assertThat($this->object->getServer('SERVER_ADDR'), $this->equalTo('127.0.0.1')); }
/** * @covers Request::__call * @expectedException InvalidArgumentException */ public function testExceptionWhenRequestUriIsNotSet() { $request = new Request(); $request->getServer('REQUEST_URI'); }
/** * */ protected function rendarParamSet() { // set template $this->template->assign_vars(array("PATH" => Application::getBaseUrl(), "PPATH" => Application::getBaseUrl("/" . $this->project), "ROOT" => Application::getWebUrl(), "PROOT" => Application::getWebUrl("/" . $this->project), "HOST" => Application::getHostname(), "URL" => Application::getHostUrl(), "PROJECT_NAME" => $this->project, "CLASS_NAME" => get_class($this), "SELF" => Application::getBaseUrl() . Request::getUri(), "SERVER" => Request::getServer()->getVars(), "REQUEST" => Request::getRequest()->getVars(), "POST" => Request::post()->getVars(), "GET" => Request::getQuery()->getVars(), "FLASH" => Session::getFlashData())); Session::clearFlash(); }
/** * Constructor * * @return void */ public function __construct() { $request = new Request(); $this->_inputedUserId = $request->getServer('PHP_AUTH_USER'); $this->_inputedPassword = $request->getServer('PHP_AUTH_PW'); }