Bonjour,
J'utlilise le systeme de routing de Grafikart de son tuto, et je voulais savoir si il etait possible de de par exemple qui si :page est null donc l'url est www.domaine.com/ php utiliste quand même cette route mais avec un get null

$router->get('/:page', function($page){
    if(empty($page){
        ...
     } else {
        ...
     }
});

car pour l'instant je suis obligé de mettre 2 route, une pour la homepage et une autre si :page n'est pas vide.
Merci par avance.

1 réponse


Je ne connais pas vraiment le back du Router (faudrait que je regarde le tuto...), mais tu pourrais utiliser func_get_args()+ des exceptions (en particulier InvalidArgumentException). Tu interceptes tout les paramètres et ceux qui sont des strings seront des routes qui pointent sur la closure.

Ce que j'aime bien faire, perso, c'est de créer une méthode spéciale pour la validation des paramètres du méthode public que a une input (paramètres) complexe.

class Foo
{
    public function match()
    {
        $args = static::validateMatch(func_get_args());

        // use arguments
    }

    protected static function validateMatch()
    {
        // check if a closure is in the array
        // if no string given, add a route on '/'
        // etc
    }
}