Exemple #1
0
 public static function dispatch()
 {
     self::load_global_file();
     $target = router::parse_php_uri(visitor::uri(), visitor::host());
     $forward_times = 0;
     while (true) {
         if ($forward_times >= 8) {
             throw new developer_error('too many forwards');
         }
         self::$global_filters = config::get_module('global_filters', null);
         try {
             self::dispatch_target($target);
             break;
         } catch (action_forward $forward) {
             $target = $forward->get_target();
             config::set_module_name($target->get_module_name());
             visitor::forward_cookies();
             $forward_times++;
             continue;
         } catch (dispatch_return $return) {
             return;
         }
     }
 }