Example #1
0
 static function add($uri, $func = "", $silent = false)
 {
     $time_start = Util::microtime_float();
     $requestUri = strtok($_SERVER["REQUEST_URI"], '?');
     if (strpos($requestUri, $uri) !== false) {
         if ($func) {
             $func();
         }
         $uri = trim($uri, "/");
         $e = explode("/", $uri);
         $e[count($e) - 1] = ucfirst($e[count($e) - 1]);
         $uri = implode($e, "/");
         $n = sizeof($e);
         $className = strtr($uri, '/', '\\');
         $class = "app\\{$className}";
         $action = Input::getMethod() . "_" . Input::getPath()->part($n + 1);
         if (class_exists($class)) {
             $controller = new $class();
             if (method_exists($controller, $action)) {
                 $response = $controller->{$action}();
             } else {
                 $action = Input::getMethod() . "_index";
                 if (method_exists($controller, $action)) {
                     $response = $controller->{$action}();
                 } else {
                     header('HTTP/1.0 404 Not Found');
                     echo "<h1>404 Not Found</h1>";
                     exit;
                 }
             }
         }
         //header('charset=utf-8');
         //header('Content-Type: text/plain; charset=utf-8');
         $code = isset($response["code"]) ? $response["code"] : "200";
         header("HTTP/1.0 {$code} " . Util::httpCodeText($code));
         if (isset($response["json"])) {
             echo Response::passthru($response["json"]);
         } else {
             if (!$silent) {
                 $response["_execution_time"] = round(Util::microtime_float() - $time_start, 3);
                 echo Response::toJson($response);
             }
         }
         exit;
     }
 }