Ceci est une ancienne révision du document !
Phalcon routage
Le composant de routage Phalcon Phalcon\Mvc\Router permet de définir des routes mappées vers les contrôleurs ou vers des handlers qui reçoivent la requête. Le routage peut fonctionner en mode MVC ou en mode match-only.
-- Définition de routes
En mode MVC, il est possible de définir des routes et de les mapper vers les actions des contrôleurs.
-- Routes simples
Quelques exemples :
<?php // Instanciation du routeur $router = new \Phalcon\Mvc\Router(); //Création d'une route $router->add( "/admin/users/my-profile", array( "controller" => "users", "action" => "profile", ) ); //Ajout d'une autre route $router->add( "/admin/users/change-password", array( "controller" => "users", "action" => "changePassword", ) ); $router->handle();
Utilisation de la syntaxe courte pour définir les routes :
<?php //Création d'une route $router->add("/admin/users/my-profile","users::profile"; //Ajout d'une autre route $router->add("/admin/users/change-password","users::changePassword");
-- Routes génériques
Il est possible de définir des routes plus génériques en utilisant les expressions régulières (syntaxe PRCE)
Exemple :
<?php // Create the router $router = new \Phalcon\Mvc\Router(); //Define a route $router->add( "/admin/:controller/a/:action/:params", array( "controller" => 1, "action" => 2, "params" => 3, ) );
Les alias :controller, :action et :params simplifient l'expression et évitent l'usage direct d'expressions régulières.
- Le premier paramètre de add défini le pattern de l'url interceptée
- Le second défini comment les parties de l'url se répartissent en controller, action et parameters
Si l'url frappée est /admin/users/a/delete/dave/301, elle sera interprétée en :
- contrôleur : users
- action : delete
- param : dave
- param : 301
Alias disponibles :
Alias | Expression régulière associée | Usage |
---|---|---|
/:module | /([a-zA-Z0-9_-]+) | Correspond à un nom de module valide avec caractères alpha-numériques seulement |
/:controller | /([a-zA-Z0-9_-]+) | Correspond à un nom de contrôleurvalide avec caractères alpha-numériques seulement |
/:action | /([a-zA-Z0-9_]+) | Correspond à un nom d'action valide avec caractères alpha-numériques seulement |
/:params | (/.*)* | Matches a list of optional words separated by slashes. Use only this placeholder at the end of a route |
/:namespace | /([a-zA-Z0-9_-]+) | Matches a single level namespace name |
/:int | /([0-9]+) | Matches an integer parameter |