Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam4:php:phalcon:routes [2015/01/11 19:27] – [1.2- Routes génériques] jcheron | slam4:php:phalcon:routes [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 112: | Ligne 112: | ||
</ | </ | ||
+ | Une URL de la forme / | ||
+ | * controller : posts | ||
+ | * action : show | ||
+ | * year : 2015 | ||
+ | * month : 1 | ||
+ | * day : 11 | ||
+ | * params : last et desc | ||
+ | |||
+ | |||
+ | Version courte avec paramètres nommés : | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | $router-> | ||
+ | "/ | ||
+ | array( | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | ==== -- Récupération des paramètres nommés dans l' | ||
+ | |||
+ | |||
+ | <sxh php; | ||
+ | <?php | ||
+ | |||
+ | class PostsController extends \Phalcon\Mvc\Controller{ | ||
+ | |||
+ | public function indexAction(){ | ||
+ | |||
+ | } | ||
+ | |||
+ | public function showAction(){ | ||
+ | |||
+ | // Return " | ||
+ | $year = $this-> | ||
+ | |||
+ | // Return " | ||
+ | $month = $this-> | ||
+ | |||
+ | // Return " | ||
+ | $day = $this-> | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== -- Restrictions sur la méthode HTTP ==== | ||
+ | |||
+ | La correspondance des routes peut également être réalisée sur la méthode HTTP (GET, POST, HEAD, PUT, DELETE...) : | ||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | // This route only will be matched if the HTTP method is GET | ||
+ | $router-> | ||
+ | |||
+ | // This route only will be matched if the HTTP method is POST | ||
+ | $router-> | ||
+ | |||
+ | // This route will be matched if the HTTP method is POST or PUT | ||
+ | $router-> | ||
+ | </ | ||
+ | |||
+ | ==== -- Fonctions de vérification ==== | ||
+ | |||
+ | Les routes doivent parfois satisfaire des conditions bien spécifiques qu'il est possible d' | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | $router-> | ||
+ | ' | ||
+ | ' | ||
+ | ))-> | ||
+ | //Vérifie si la requête est réalisée en Ajax | ||
+ | if ($_SERVER[' | ||
+ | return false; | ||
+ | } | ||
+ | return true; | ||
+ | }); | ||
+ | </ | ||
+ | ==== -- Groupes de routes ==== | ||
+ | Si un ensemble de routes a des chemins identiques, il est possible de les regrouper pour les gérer plus facilement : | ||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | $router = new \Phalcon\Mvc\Router(); | ||
+ | |||
+ | //Create a group with a common module and controller | ||
+ | $blog = new \Phalcon\Mvc\Router\Group(array( | ||
+ | ' | ||
+ | ' | ||
+ | )); | ||
+ | |||
+ | //All the routes start with /blog | ||
+ | $blog-> | ||
+ | |||
+ | //Add a route to the group | ||
+ | $blog-> | ||
+ | ' | ||
+ | )); | ||
+ | |||
+ | //Add another route to the group | ||
+ | $blog-> | ||
+ | ' | ||
+ | )); | ||
+ | |||
+ | //This route maps to a controller different than the default | ||
+ | $blog-> | ||
+ | ' | ||
+ | ' | ||
+ | )); | ||
+ | |||
+ | //Add the group to the router | ||
+ | $router-> | ||
+ | </ | ||
+ | |||
+ | ===== -- Configuration du routage ===== | ||
+ | ==== -- Fonctionnement par défaut ==== | ||
+ | La classe [[http:// | ||
+ | |||
+ | Il est possible de désactiver ce fonctionnement par défaut : | ||
+ | |||
+ | <sxh php; | ||
+ | <?php | ||
+ | |||
+ | // Instanciation du routeur sans les routes par défaut | ||
+ | $router = new \Phalcon\Mvc\Router(false); | ||
+ | </ | ||
+ | |||
+ | === -- Route par défaut === | ||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | $router-> | ||
+ | ' | ||
+ | ' | ||
+ | )); | ||
+ | </ | ||
+ | |||
+ | === -- Chemins par défaut === | ||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | // | ||
+ | $router-> | ||
+ | $router-> | ||
+ | $router-> | ||
+ | $router-> | ||
+ | |||
+ | // | ||
+ | $router-> | ||
+ | ' | ||
+ | ' | ||
+ | )); | ||
+ | </ | ||
+ | |||
+ | === -- Erreur 404 : not found path === | ||
+ | |||
+ | <sxh php> | ||
+ | <?php | ||
+ | |||
+ | //Set 404 paths | ||
+ | $router-> | ||
+ | " | ||
+ | " | ||
+ | )); | ||
+ | </ | ||
===== -- Initialisation du service routage ===== | ===== -- Initialisation du service routage ===== | ||
L’initialisation du service routage se fait par injection de dépendance dans le fichier index.php ou services.php (si le projet a été créé avec webtools). | L’initialisation du service routage se fait par injection de dépendance dans le fichier index.php ou services.php (si le projet a été créé avec webtools). |