Example #1
0
 /**
  * Cleans up requests for matching and execution
  *
  * @static
  * @access	public
  */
 public static function route()
 {
     // copy needed server variables, leave the environment alone
     self::$query_string = $_SERVER['QUERY_STRING'];
     self::$request_uri = $_SERVER['REQUEST_URI'];
     self::$request_method = $_SERVER['REQUEST_METHOD'];
     self::$script_name = $_SERVER['SCRIPT_NAME'];
     // remove query string components
     self::$request_uri = str_replace(self::$query_string, '', self::$request_uri);
     self::$request_uri = rtrim(self::$request_uri, '?');
     // strip full script name off, if needed
     self::$request_uri = str_replace(self::$script_name, '', self::$request_uri);
     // finally, trim all /'s
     self::$request_uri = trim(self::$request_uri, '/');
     self::$request_method = strtolower(self::$request_method);
     if (!($match = self::match())) {
         die("Match for URL pattern not found.");
     }
     // instantiate the matched controller, call the requested method
     $object = new $match();
     $method = self::$request_method;
     if (!method_exists($object, $method)) {
         die("Required method does not exist.");
     }
     $object->{$method}();
 }