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);
}