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 :
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 :
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 :
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 :
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.