JeuWeb - Crée ton jeu par navigateur
Comportement attendu pour du routing - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comportement attendu pour du routing (/showthread.php?tid=5952)



Comportement attendu pour du routing - Holy - 02-02-2012

Yop ^^

Je viens pour une requête relativement simple et c'est plutôt une demande d'avis qu'une demande d'aide en réalité.

Je suis en train de fignoler mon système de routeur pour mon p'tit framework maison et je me demandais quel était le type de comportement attendu dans les frameworks traditionnels (RoR, symfony, zend, ...) face à ce type de situation.

Voici trois adresses qui sont relativement proches mais qui, évidemment, ne renvoient pas les mêmes arguments à mon controlleur :
Code :
./forum/read
  Transmet l'id 1 au controlleur (par défaut, défini sur ma feuille de route).
./forum/read/2
  Transmet l'id 2 au controlleur.
./forum/read/
  N'est pas matché par ma feuille de route.

Ma question est totalement triviale, mais dans le troisième et dernier cas, est-ce que je devrais matcher le chemin et adopter un comportement similaire au premier cas ?

En sachant que ma feuille de route ressemble à peu près à ceci :
Code :
forum_read:
  path:      "/read/{id}"
  default:
    id:      "1"
  rules:
    id:      "[0-9]"

Merci pour ce petit renseignement,

Holy


RE: Comportement attendu pour du routing - Sephi-Chan - 02-02-2012

Comment expliques-tu que la route 3 ne match pas actuellement ?


RE: Comportement attendu pour du routing - Holy - 02-02-2012

(02-02-2012, 12:13 PM)Sephi-Chan a écrit : Comment expliques-tu que la route 3 ne match pas actuellement ?
Uniquement parce que je l'ai décidé dans ma fonction de parsing ^^.

En fait, j'ai pas fort l'habitude de cette arborescence en sous-dossier pour les urls, du coup je sais pas trop quelle est la convention en vigueur.

Et en même temps, plus j'y repense, plus je me dis qu'elle devrait matcher et adopter le comportement par défaut, surtout que syntaxiquement, c'est ce qui correspond à ma règle...

Mais je sais pas, j'avais l'impression que ça "clochait" par rapport aux conventions des frameworks conventionnels. V'là que je me tracasse pour rien du tout :langue2:.


RE: Comportement attendu pour du routing - Sephi-Chan - 02-02-2012

A l'intuition, si une de ces trois routes ne devait pas match, c'est bien la première.
En effet, l'absence du slash final pourrait la faire passer pour une autre forme de route.
Mais la troisième me paraît évidente puisqu'elle définit une valeur par défaut en l'absence de valeur du placeholder.

Je suis de toute façon contre les valeurs par défaut dans les routes.
Après 3 ans de Rails et un certain nombre de cas d'utilisations couverts, je n'en ai jamais eu besoin.
En revanche, des fragments optionnel, ça c'est utile.

Si tu as un moment, je t'invite à lire Rails routing from the outside in, ça peut sans doute t'inspirer.