URLs

Comme de nombreux autres frameworks, si vous utilisez le routeur avec son comportement par défaut, il existe une relation biunivoque entre une chaîne d’URL et la classe/méthode de contrôleur correspondante. Les segments d’une URI suivent normalement ce modèle : : :

example.com/controller/method/param
example.com/controller/method/param1/param2

Méthode par défaut

Lorsque l’URL est composée d’une seule partie, correspondant au nom d’un contrôleur, la méthode index du contrôleur est automatiquement appelée :

URL :

example.com/Products
example.com/Products/index

Controller :

app/controllers/Products.php
1class Products extends ControllerBase{
2    public function index(){
3        //Default action
4    }
5}

Paramètres requis

Si la méthode sollicitée a des paramètres obligatoires, ils doivent être passés dans l’URL :

Controller :

app/controllers/Products.php
1class Products extends ControllerBase{
2    public function display($id){}
3}

Urls valides :

example.com/Products/display/1
example.com/Products/display/10/
example.com/Products/display/ECS

Paramètres optionnels

La méthode appelée peut avoir des paramètres optionnels.

Si un paramètre n’est pas présent dans l’URL, la valeur par défaut du paramètre est utilisée.

Controller :

app/controllers/Products.php
class Products extends ControllerBase{
    public function sort($field, $order='ASC'){}
}

Urls valides :

example.com/Products/sort/name (uses "ASC" for the second parameter)
example.com/Products/sort/name/DESC
example.com/Products/sort/name/ASC

Sensibilité à la casse

Sur les systèmes Unix, le nom des contrôleurs est sensible à la casse.

Controller :

app/controllers/Products.php
class Products extends ControllerBase{
    public function caseInsensitive(){}
}

Urls :

example.com/Products/caseInsensitive (valid)
example.com/Products/caseinsensitive (valid because the method names are case insensitive)
example.com/products/caseInsensitive (invalid since the products controller does not exist)

Personnalisation du routage

Le Routeur et les attributs ou annotations dans les classes contrôleur permettent de personnaliser les URLs.