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 :

Symfony routing / annotations : conflit de routes (sur application non-symfony)


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 67
    Par défaut Symfony routing / annotations : conflit de routes (sur application non-symfony)
    Bonjour à tous,

    Je rencontre un petit problème sur une application développée en PHP, qui utilise certains composants de symfony & doctrine (routing, annotations...).

    Sur mon Controller qui contient différentes actions, j'ai un conflit entre 2 routes qui à mon sens n'a pas lieu d'être...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    /**
        * @Route("/composition/{composition_id}/{dupliquer}", name="composition")
         */
        public function index(int $composition_id)
        {
            // Do something
         }
     
     
    /**
         * @return bool
         *
         * @Route("/composition/uploadMedia", name="uploadMedia")
         */
        public function uploadMedia()
        {
             // Do something
         }
    Voici différents exemple selon la route que j'appelle...

    http://www.exemple.com/composition/5
    => OK : la méthode index est appelée et l'id est bien récupéré

    http://www.exemple.com/composition/uploadMedia
    => ERREUR : c'est toujours la méthode index qui est appelée (au lieu de uploadMedia), et une erreur de type est générée
    Argument 2 passed to CompositionsController::composition() must be of the type int, string given
    Pourtant sur une application symfony classique, je ne rencontre (presque) jamais ce genre de problèmes et le système de routing me renvoie vers la bonne méthode... y-a-t-il un paramétrage supplémentaire à effectuer ?

    Bien sur je pourrais allonger volontairement la route du style /composition/truc/machin/uploadMedia pour esquiver le problème mais je trouve ça bof comme solution

    Si quelqu'un a une suggestion je suis preneur

  2. #2
    Membre éprouvé
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Par défaut
    Bonjour.
    Oui c'est normal que la première route soit toujours matchée dans l'état actuel des choses.
    Voici ce qu'il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /**
        * @Route("/composition/{composition_id}/{dupliquer}", name="composition", requirements={"composition_id"="\d+"})
         */
        public function index(int $composition_id)
        {
            // Do something
         }
    J'ai rajouté ici requirements={"composition_id"="\d+"} qui spécifie que composition_id doit être un int. Ainsi la seconde route /composition/uploadMedia ne sera pas matchée par erreur.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 67
    Par défaut
    Merci pour ces précisions, je me suis emmêlé les pinceaux avec mes routes

    Bonne soirée

Discussions similaires

  1. Tracé d'une route sur une carte
    Par Pierre95 dans le forum Débuter
    Réponses: 14
    Dernier message: 10/09/2012, 14h04
  2. Route sur google map
    Par tunisdroid dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 10/06/2012, 11h28
  3. PB de routing sur sfContactFormPlugin
    Par pierreHaut dans le forum Plugins
    Réponses: 5
    Dernier message: 23/03/2011, 10h40
  4. probleme de routing sur win 2003 Server R2 SP2
    Par maikess dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 19/05/2010, 16h06
  5. Conflit de noms sur application en Java EE 1.4
    Par supernova dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 15/05/2007, 12h52

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