IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Routing] Avoir un préfixe variable pour une ressource externe


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Par défaut [Routing] Avoir un préfixe variable pour une ressource externe
    Salut tout le monde,

    Voilà j'ai rencontré un os avec le routing, ce que je croyais évident ne l'est pas tant que cela.

    J'explique : j'aimerais arriver à donner un préfixe variable à une collection de routes que l'on importe et apparament cela n'est pas prévu.. du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //app/config/routing.yml
     
    test:
     resource: "Bundle/Resources/config/routing.yml"
     prefix: /{var}
     requirements:
      var: foo | bar
    Impossible d'arrive à matcher les routes, pour la génération cela a l'air de bien passer.

    Je fais donc appel à vos claviers pour voir si il y a moyen de tweaker cela, je posterai ici mes trouvailles.

    Merci

    .cwx

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Ca marcherait cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test:
     resource: "Bundle/Resources/config/routing.yml"
     prefix: ["/foo","/bar"]

  3. #3
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Par défaut
    Malheureusement non. En fouillant le code, on tombe sur les méthodes

    getStaticPrefix()

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Mais ce qui est marrant, c'est que ca marche avec ton generate. Il te genere foo ou bar ? Ou aleatoire ?

    C'est quoi ton cas d'application ?

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Par défaut
    Non c'est pas marrant

    Pas vraiment de cas d'application, je testes. Au départ ce que je voulais c'est mettre la locale dans le préfix, cela évite ainsi de mettre cette variable sur toutes les routes du fichier inclus et pouvoir aussi bien employer le bundle avec ou sans la locale dans l'url.

    Donc avec la locale il met automatiquement "en" même si elle est en "fr", il ne prend pas en compte mes requirements pour le préfix et ne prends plus en compte les variables de routes inclues - le bordel quoi !!

    Mon routing.yml dans le dossier /app/config/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    _test_pref:
     resource: "@AcmeDemoBundle/Resources/config/routing.yml"
     prefix: /{_locale}
     requirements:
      _locale: en|fr

    Mon routing inclus
    test_gen:
    pattern: /gen/{id}
    defaults: { _controller: AcmeDemoBundleemo:index, id: 1 }
    requirements:
    id: \d+
    Si je fais une génération mtnt de test_gen cela donnera :

    /app_dev.php/en/gen

    donc il met automatiquement en et ne prend plus en compte l'id

    Edit: Génial, le nom de bundles fait sourire

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Visiblement, un parametre dans le prefixe n'est pas du tout prevu par symfony De toute facon c'etait previsible, car sinon tu devrais changer les definitions des methodes xxAction de ton controller.
    Mais le use case du {_locale} est pas mal, car independant des methodes xxAction pour le coup. Et ca me parait pas mal de pouvoir charger un bundle accessible uniquement en francais par exemple. Tu veux pas poser la question sur la mailing symfony-users ?

Discussions similaires

  1. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  2. [VBA-E]Peut on avoir l'equivalent .controls pour une feuille
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2007, 18h06
  3. Réponses: 4
    Dernier message: 09/01/2007, 11h31
  4. [FLASH MX] nom variable pour une fonction
    Par totoche dans le forum Flash
    Réponses: 2
    Dernier message: 20/12/2005, 14h00
  5. [W3C] Points de suites variables pour une tabulation
    Par jacma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/06/2005, 00h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo