Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-12-2008 16:43:51

sweety_des_isles
Nouveau membre
Date d'inscription: 08-12-2008
Messages: 8

Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Bonjour,
je suis nouvelle sur le forum, j'espère que c'est l'occasion que j'apprenne beaucoup de choses, et qui sais que je porte ma contrib' !

Je voudrais former mes url via le zend router regex.

Qui devrais me permettre d'obtenir :

videos-75-abcd, mais aussi videos-75, ou encore videos.


Code:

$router->addRoute('videos',new Zend_Controller_Router_Route_Regex(
    '(videos|video-clips|video-freestyles)(?:-(75|78|971|974))?(?:-(\w)+)?'
  , array(
        'controller' => 'list-entite',
        'action'     => 'index',
        'entite'     => null
      , 'pays'        => null
      , 'musique'        => null
    )
  , array(
        1=>'entite'
      , 2=>'pays'
      , 3=>'musique'
    ),
  '%s-%s-%s'
));

Mais voila cela ne marche pas. Je suppose que je n'ai pas le recul suffisant pour appréhender les expressions telles que celle la.



Pourriez vous m'aider svp.

Merci d'avance !

Hors ligne

 

#2 08-12-2008 17:33:58

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Voila une qui marche :

(\w+)(?:-(\d+))?(?:-(\w+))?

Par contre, je ne comprends pas vraiment pourquoi la tienne ne marche pas (a priori, c'est la 3eme partie qui pose problème)

Dernière modification par nORKy (08-12-2008 17:34:58)


----
Gruiiik !

Hors ligne

 

#3 08-12-2008 17:40:16

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Le boulet !! On a la réponse devant nos yeux smile

La différence entre ton expression et la mienne, c'est le + qui est mal placé pour la 3eme partie ! (\w+)
(mis à part que moi, j'ai pas mis les mots complets, mais c'est ca, toi qui voit)


----
Gruiiik !

Hors ligne

 

#4 08-12-2008 17:41:32

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

au fait, garde un testeur sous la main :

http://lumadis.be/regex/test_regex.php?lang=fr


----
Gruiiik !

Hors ligne

 

#5 08-12-2008 22:04:41

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Petite note: Un des problèmes de vos routes, c'est qu'elles contiennent des sous masques, donc les routes ne peuvent pas être (ré)assemblées (à cause de l'utilisation de la fonction sprintf() pour l'assemblage).

Hors ligne

 

#6 08-12-2008 22:28:27

Guillhomme
Membre
Date d'inscription: 09-10-2008
Messages: 102

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Mr.MoOx tu peux detailler un peu ? J'ai pas compris et ta reponse semble interessante

Hors ligne

 

#7 08-12-2008 22:42:12

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Je sais pas si tu sais, mais les routes peuvent (et devraient toujours smile ) servir à générer les liens via le helper url.

Si tu utilises des sous masques comme ici "(\w+)(?:-(\d+))?(?:-(\w+))?" (cf italic) tu ne pourra pas généré correctement ton url car pour l'assemblage des routes le ZF utilise sprintf() qui permet juste de remplacer des variables dans une string, sans prendre en compte des masques dont l'existance est des fois non connu (car. spéc. ? par exemple, ou encore {0,...} )

Hors ligne

 

#8 08-12-2008 23:37:27

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

Je confirme, il faut redéfinir et bien se casser la tête sur le routeur pour que ça fonctionne lol

Hors ligne

 

#9 09-12-2008 09:17:40

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend_Controller_Router_Route_Regex Regex et portions conditionnelles

je pense que sweety_des_isles s'en rendra compte par elle même.

De plus, même si 'il faudrait' faire de "tel manière", rien n'en lui empêche d'écrire son propre helper url pour former ses urls.


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages