Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony : Nommage des formulaires

    14 septembre 2019 à 14:13:15

    Bonjour,

    Supposons que j'ai une entité User, qui contient les propriétés name, age, phone.

    Je veux créer deux formType de ce User, le premier qui contient les champs name et age, et le deuxième le champ phone.

    Comment dois-je nommer ces deux formulaires? De manière générale comment doit-on nommer des formulaires basés sur la même entité mais pas avec les mêmes champs ?

    J'ai pensé à UserType1 et UserType2 mais ça me parait pas assez explicite.

    Merci de vos réponses :)

    • Partager sur Facebook
    • Partager sur Twitter
      15 septembre 2019 à 15:27:05

      Je pense que ça devrait le faire si tu les mets bien en relation, t'as essayé ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 septembre 2019 à 17:35:40

        Un formulaire est soumis pour effectuer une action, généralement plus spécifique que "mettre à jour une entité". C'est pour ça qu'il vaut mieux découpler les deux : http://verraes.net/2013/04/decoupling-symfony2-forms-from-entities/

        Une action s'exprime avec un verbe donc il est pertinent qu'il préfixe la classe du formulaire. Par exemple LogInType.

        Pour finir l'action dépend de ton modèle. Tu as choisi d'avoir deux formulaires pour une raison qu'on ne connaît pas, on ne peut donc pas te conseiller un nom adapté (ou alors par chance).

        • Partager sur Facebook
        • Partager sur Twitter
          15 septembre 2019 à 17:44:23

          attention tout de même...

          le nunéro de tel est une donné à sécuriser...

          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

            15 septembre 2019 à 20:32:58

            MatTheCat a écrit:

            Un formulaire est soumis pour effectuer une action, généralement plus spécifique que "mettre à jour une entité". C'est pour ça qu'il vaut mieux découpler les deux : http://verraes.net/2013/04/decoupling-symfony2-forms-from-entities/

            Une action s'exprime avec un verbe donc il est pertinent qu'il préfixe la classe du formulaire. Par exemple LogInType.

            Pour finir l'action dépend de ton modèle. Tu as choisi d'avoir deux formulaires pour une raison qu'on ne connaît pas, on ne peut donc pas te conseiller un nom adapté (ou alors par chance).


            Intéressant, j'ai pensé à nommer mes formulaires par action mais je me suis dis que si ce formulaire devait être utilisé pour une autre action ça poserait problème. Qu'en penses tu?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 septembre 2019 à 21:03:24

              Si deux actions différentes nécessitent les mêmes données elles n'en restent pas moins différentes, du coup je coderais deux formulaires.

              • Partager sur Facebook
              • Partager sur Twitter
                16 septembre 2019 à 5:27:04

                si j'ai bien compris à l'inscription  tu demande pas le numéro mais plus tard oui

                si c'est bien le cas inutile d'avoir deux formulaire différent vu que la première action est un insert et la seconde un update c'est juste une question d'affichage

                prenons l'exemple d'un site d'annonce les utilisateurs peuvent déposer des annonces et l'admin peut les modifier, on vas pas créer deux formulaires différent dans ce cas.

                • Partager sur Facebook
                • Partager sur Twitter

                Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                  16 septembre 2019 à 12:00:02

                  Bonjour,

                  Tu peux très bien faire deux forms comme un form, c'est plus un choix d'organisation de ton code.

                  Tu peux très bien dans ton formType faire des if et ajouter des champs dans certaines conditions ou en fonction de paramètre passer a ton form.
                  Exemple:


                  public function buildForm(FormBuilderInterface $builder, array $options)
                  {
                      $entity = $builder->getData();
                   
                      // champ commun à la création et à la modification
                      $builder->add("...");
                  
                      // création
                      if(is_null($entity->getId())) {
                          //champ spécifique à la création
                          $builder->add("...");
                      } 
                      // modification car id non null
                      else {
                          //champ spécifique à la modification
                          $builder->add("...");
                      }

                  -
                  Edité par coolswing 16 septembre 2019 à 12:00:33

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 septembre 2019 à 15:12:19

                    hum

                    tu nous envoie vers un lien qui traite de symfony2 et qui date de 2013o_O

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                      16 septembre 2019 à 15:29:44

                      La date de l'article importe peux car ils parle d'une méthode qui est applicable quelque soit la version de symfony, ou même sur un framework custom.
                      L'important c'est la cohérence de la solution choisie par rapport à un problème donné, après si deux solution répondent aux besoins c'est à toi de faire un choix selon tes préférences.

                      -
                      Edité par coolswing 16 septembre 2019 à 15:30:07

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        16 septembre 2019 à 15:52:55

                        Effectivement je n'ai pas conseillé de s'arrêter à la date de publication de l'article : juste de le lire :D

                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 septembre 2019 à 16:18:24

                          après le problème est qu'on ne connais pas grand chose sur son projet ni même sur son entité User

                          Nous ne conaissons même pas ce que contient sont entité User

                          Car une entité User ne s'arrête pas à name, age et phone

                          si tu pouvais nous en dire plus ça pourrais nous aider à te conseiller

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                          Anonyme
                            16 septembre 2019 à 17:14:01

                            Je déteste la doc de Symfony pour donner l'impression qu'un formulaire est forcément lié à une entité. On se retrouve avec des hordes de dév qui ne conçoivent même pas l'inverse alors qu'il est plus simple et plus adapté.

                            Bref j'en ai fini ici. Je pense que l'OP a compris la méthodologie ; ça fera au moins une personne :D

                            • Partager sur Facebook
                            • Partager sur Twitter
                              16 septembre 2019 à 17:45:59

                              certe un form n'est pas obligatoirement lié à une entité mais les cas sont quand même très rare
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                              Symfony : Nommage des formulaires

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown