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 :

ecrire le genre en dur ou pas?


Sujet :

Symfony PHP

Vue hybride

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

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut ecrire le genre en dur ou pas?
    Bonjour,

    Nous développons un site avec un ami pour le plaisir de coder.

    On voudrait permettre d'enregistrer le genre des utilisateurs.

    Pour cela mon pote propose de créer une entité genre qui vontiendrait une propriété nom "homme", une initiale "M", et une url pour afficher le symbole correspondant.

    De mon cote je propose de faire un enum M ou F ou A(autre, oui ca existe administrativement parlant) et de gérer le reste en php voir en twig.

    Quelle est le plus optimisé, le plus propre?

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    hééééé bah moi je vais parier sur toi, j'espere que je vais miser sur le bon poulain !!!!! huuuuuuuuuuuUUUUUUUUUUUUUUUUUUUUUU !


    faire un enum c'est la classe, avec une entité tu fais un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'femelle', 'extra terrestre', '')")

    en ligne de commande, tu génères le CRUD ..... et voilà !!!

  3. #3
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Hello,

    Je préconiserais quelque chose de plus proche de ce que ton pote propose. Un Value Object, mais pas une entité.
    C'est un concept assez important du DDD auquel je vous suggère de vous intéresser et qui pourrait résoudre votre dilemme.

    ++

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dukoid Voir le message
    hééééé bah moi je vais parier sur toi, j'espere que je vais miser sur le bon poulain !!!!! huuuuuuuuuuuUUUUUUUUUUUUUUUUUUUUUU !

    Oui, c'est bien a ce que je pensais

    Citation Envoyé par Nico_F Voir le message
    Hello,

    Je préconiserais quelque chose de plus proche de ce que ton pote propose. Un Value Object, mais pas une entité.
    C'est un concept assez important du DDD auquel je vous suggère de vous intéresser et qui pourrait résoudre votre dilemme.

    ++
    Je vais me renseigner sur le value object, et je vous tiens au courant!
    Merci

  5. #5
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Voilà ce que je vais faire au final:

    • utiliser un string long de 1, comme propriété de User
    • mettre un filtre dans la methode setGender($gender) pour ne permetre comme argument que F ou G
    • créer une extension twig pour que soit afficher pour M: soit M, soit Masculin soit une image/icon du sigle masculin.
      --> cette méthode peut en plus être utilisée avec une api si besoin ultérieurement.


    Qu'en pensez-vous?

  6. #6
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Ça pourrait faire l'affaire, le problème est que cette solution viole ce qu'on appelle en POO le "Open/Closed Principle".

    Pour la faire courte : une classe doit être ouverte à l'extension, mais fermée à la modification.

    Dans ton cas si en plus de "Homme", "Femme" ou "Autre", tes besoins t'obligent à rajouter "Hermaphrodite" ou "Transgenre", avec ta solution je vais devoir rajouter du code pour traiter ces cas.
    En faisant un Value Object tu n'as qu'à rajouter des données en base, mais le code ne change pas.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire sur le disque dur
    Par lenul dans le forum C
    Réponses: 5
    Dernier message: 18/03/2009, 17h07
  2. dique dur externe pas dans l'explorateur
    Par griese dans le forum Windows XP
    Réponses: 40
    Dernier message: 27/02/2008, 13h27
  3. disque dur externe pas reconnu
    Par damtreza dans le forum Matériel
    Réponses: 1
    Dernier message: 29/07/2007, 17h07
  4. Interdire à X d'écrire sur le disque dur, possible ?
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 29/10/2004, 16h50
  5. [XSL][re] Ecrire des balise qui ne seront pas interpretées
    Par FrRoulio dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/03/2004, 12h32

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