Example #1
0
 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();
 }
Example #3
0
 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];
 }
Example #4
0
 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;
 }
Example #5
0
    /**
     * @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'));
 }
Example #7
0
 /**
  * @covers            Request::__call
  * @expectedException InvalidArgumentException
  */
 public function testExceptionWhenRequestUriIsNotSet()
 {
     $request = new Request();
     $request->getServer('REQUEST_URI');
 }
Example #8
0
 /**
  *
  */
 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();
 }
Example #9
0
 /**
  * Constructor
  *
  * @return void
  */
 public function __construct()
 {
     $request = new Request();
     $this->_inputedUserId = $request->getServer('PHP_AUTH_USER');
     $this->_inputedPassword = $request->getServer('PHP_AUTH_PW');
 }