Example #1
0
/**
 * UrlBuilder
 * Renvoi une url par rapport à
 * un alias et ses arguments
 * @param  string $alias
 * @param  mixed $arguments
 * @return string
 */
function route($alias, $arguments = null)
{
    // récupére l'url
    $url = '/' . Routes::getUrlByAlias($alias);
    // Gestion des arguments null !! attention aux routes avec plusieurs arguments
    if (is_null($arguments)) {
        $url = preg_replace('#:[a-z]+#', '', $url);
    }
    // ajoute les arguments à l'url
    if (gettype($arguments) === 'string') {
        $url = preg_replace('#:[a-z]+#', $arguments, $url);
    } elseif (gettype($arguments) === 'array') {
        foreach ($arguments as $value) {
            $url = preg_replace('#:[a-z]+#', $value, $url, 1);
        }
    }
    // netoyage des / au cas ou
    $url = str_replace('//', '/', $url);
    // retour de l'url complète
    return $url;
}