コード例 #1
0
ファイル: fluf.php プロジェクト: nijikokun/fluf
 static function run()
 {
     foreach (self::$routes as $i => $r) {
         if ($r->match && !$r->ran) {
             if (!empty($r->middleware) && count($r->middleware) > 0) {
                 $next = function ($error = null) use(&$r, &$next) {
                     $r->mwarecount++;
                     if ($error = 'route' || $r->mwarecount >= count($r->middleware)) {
                         $r->mwarecount = 0;
                         fluf::handleResult(call_user_func_array($r->callback, $r->params));
                     } else {
                         if (!empty($error) && is_string($error)) {
                             throw new Exception($error);
                         } else {
                             call_user_func_array($r->middleware[$r->mwarecount], array(&$r->params, $next));
                         }
                     }
                 };
                 call_user_func_array($r->middleware[$r->mwarecount], array($r->params, $next));
             } else {
                 fluf::handleResult(call_user_func_array($r->callback, $r->params));
             }
             $r->ran = true;
         } else {
             unset(self::$routes[$i]);
         }
     }
 }