public function dispatch($request, $ignore_qs = false){
    if(strpos($request,'#') !== false){
      $request = substr($request, 0, strpos($request,'#')); //no fragments.
    }
  	if($ignore_qs && strpos($request, '?') !== false){
  		$request = substr($request, 0, strpos($request,'?')); //no QS
  	}
    if($this->router === null){
      throw new BadMethodCallException("You are missing a router. Set a router");
    }
    $bindings = $this->router->toArray();
    $routes = array_keys($bindings);
    $lot_size = ((int)self::$ROUTES_PER_LOT) > 0? ((int)self::$ROUTES_PER_LOT) : 35;
    $chunks = array_chunk($routes, $lot_size);
    foreach($chunks as $pack){
      $as_one_regex = self::asJoinedRegex($pack);

      preg_match_all($as_one_regex, $request, $one_regex);
      $matched = self::clearNonMatched($one_regex);
      $compiled = self::compileFound($pack, $matched);
      $bound_key = key($compiled);
      if($bound_key === null){
        continue;
      }
      $bound = $bindings[$bound_key];

      $vars = array_pop($compiled);
      $request_object = ((object) $vars);
      if($bound_key !== null){
        return call_user_func($bound, $request_object);
      }
    }
    return $this->fail($request);
  }
public function dispatch($request, $ignore_qs = false){
    if(strpos($request,'#') !== false){
      $request = substr($request, 0, strpos($request,'#')); //no fragments.
    }
  	if($ignore_qs && strpos($request, '?') !== false){
  		$request = substr($request, 0, strpos($request,'?')); //no QS
  	}
    if($this->router === null){
      throw new BadMethodCallException("You are missing a router. Set a router");
    }
    $bindings = $this->router->toArray();
    $routes = array_keys($bindings);
    $lot_size = ((int)self::$ROUTES_PER_LOT) > 0? ((int)self::$ROUTES_PER_LOT) : 35;
    $chunks = array_chunk($routes, $lot_size);
    foreach($chunks as $pack){
      $as_one_regex = self::asJoinedRegex($pack);

      preg_match_all($as_one_regex, $request, $one_regex);
      $matched = self::clearNonMatched($one_regex);
      $compiled = self::compileFound($pack, $matched);
      $bound_key = key($compiled);
      if($bound_key === null){
        continue;
      }
      $bound = $bindings[$bound_key];

      $vars = array_pop($compiled);
      $request_object = ((object) $vars);
      if($bound_key !== null){
        return call_user_func($bound, $request_object);
      }
    }
    return $this->fail($request);
  }
public function dispatch ( $ request , $ ignore_qs = false ) { if ( strpos ( $ request , '#' ) !== false ) { $ request = substr ( $ request , 0 , strpos ( $ request , '#' ) ) ; //no fragments. } if ( $ ignore_qs && strpos ( $ request , '?' ) !== false ) { $ request = substr ( $ request , 0 , strpos ( $ request , '?' ) ) ; //no QS } if ( $ this -> router === null ) { throw new BadMethodCallException ( "You are missing a router. Set a router" ) ; } $ bindings = $ this -> router -> toArray ( ) ; $ routes = array_keys ( $ bindings ) ; $ lot_size = ( ( int ) self :: $ ROUTES_PER_LOT ) > 0 ? ( ( int ) self :: $ ROUTES_PER_LOT ) : 35 ; $ chunks = array_chunk ( $ routes , $ lot_size ) ; foreach ( $ chunks as $ pack ) { $ as_one_regex = self :: asJoinedRegex ( $ pack ) ; preg_match_all ( $ as_one_regex , $ request , $ one_regex ) ; $ matched = self :: clearNonMatched ( $ one_regex ) ; $ compiled = self :: compileFound ( $ pack , $ matched ) ; $ bound_key = key ( $ compiled ) ; if ( $ bound_key === null ) { continue ; } $ bound = $ bindings [ $ bound_key ] ; $ vars = array_pop ( $ compiled ) ; $ request_object = ( ( object ) $ vars ) ; if ( $ bound_key !== null ) { return call_user_func ( $ bound , $ request_object ) ; } } return $ this -> fail ( $ request ) ; }
Dispatch a request against the routes held by the router
@param string $request
@param bool   $ignore_qs
@return mixed|null
Dispatch a request against the routes held by the router