Flake\Util\Router::buildRouteForController PHP Method

buildRouteForController() static public method

static public buildRouteForController ( $sController, $aParams = [] )
    static function buildRouteForController($sController, $aParams = [])
    {
        #$aParams = func_get_args();
        #array_shift($aParams);	# stripping $sController
        if (($sRouteForController = $GLOBALS["ROUTER"]::getRouteForController($sController)) === false) {
            throw new \Exception("buildRouteForController '" . htmlspecialchars($sController) . "': no route available.");
        }
        $aRewrittenParams = [];
        $sRouteClass = self::getRouteClassForRoute($sRouteForController);
        $aParametersMap = $sRouteClass::parametersMap();
        reset($aParametersMap);
        foreach ($aParametersMap as $sParam => $aMap) {
            if (!array_key_exists($sParam, $aParams)) {
                # if parameter not in parameters map, skip !
                continue;
            }
            $sUrlToken = $sParam;
            if (array_key_exists("urltoken", $aMap)) {
                $sUrlToken = $aMap["urltoken"];
            }
            $aRewrittenParams[$sUrlToken] = $aParams[$sParam];
        }
        #array_unshift($aParams, $sRouteForController);	# Injecting route as first param
        #return call_user_func_array($GLOBALS["ROUTER"] . "::buildRoute", $aParams);
        return $GLOBALS["ROUTER"]::buildRoute($sRouteForController, $aRewrittenParams);
    }