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 18:23] – [1.3- Initialisation du service routage] jcheron | slam4:php:phalcon:routes [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 90: | Ligne 90: | ||
| |/: | |/: | ||
| |/: | |/: | ||
| - | |/: | + | |/: |
| - | |/: | + | |/: |
| - | |/: | + | |/: |
| - | ==== -- Initialisation du service routage ==== | + | ==== -- Nommage des paramètres ==== |
| + | |||
| + | <sxh php> | ||
| + | <?php | ||
| + | |||
| + | $router-> | ||
| + | "/ | ||
| + | array( | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ) | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | 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 | ||
| 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). | ||