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 :

Compte Utilisateur : champs spécifiques à mon application [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Par défaut Compte Utilisateur : champs spécifiques à mon application
    Bonjour à tous,

    Je commence à peine symfony, j'ai fait le tutorial, et maintenant je me pose une question concrète concernant ma future application, question qui je le pense concerne à peu près tout le monde qui utilise symfony. Mais je n'ai vu personne qui posait clairement la question et personne qui n'y répondait clairement ^^

    J'ai vu que la gestion des utilisateurs et de l'authentification était possible via les plugins sfDoctrineGuardPlugin par exemple.

    Le problème c'est que j'ai besoin qu'un "user" ai des champs spécifiques du style : age, date de naissance, ville etc. et pas seulement son login, mot de passe !

    Comment faire cela en se basant sur un plugin Symfony qui existe deja et qui nous permet de faciliter les choses tout de même ??

    En vous remerciant d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Par défaut
    Hello,

    (grande première, c'est la première fois que j'arrive à aider quelqu'un)

    C'est extrêmement simple en fait. Il suffi de créer un modèle pour ton "Profil", que tu lies à ton modèle sfGuardUser par une relation 1-1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Configuration:
      actAs: { Timestampable: ~ }
      columns:
        lignetitre:         { type: integer, notnull: true }
        utilisateur_id:     { type: integer, notnull: false }
        signeastro :     { type: string, notnull: false }
      relations:
        Utilisateur:
          class: sfGuardUser
          local: utilisateur_id
          foreign: id
          type: one
          foreignType: one
          foreignAlias: Config
    Et c'est tout!

    Quand l'utilisateur se connecte, tu peux lui donner un lien vers son profil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url_for('configuration/edit?id='.$sf_user->getGuardUser()->getConfig()->getId())
    Côté administrateur, je te revoie à ce lien pour intégrer le profil à l'utilisateur.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Par défaut
    Merci Vince pour ces explications claires !!

    Maintenant, si je veux lier mon user à d'autres tables (par exemple, une recette de cuisine), il faut que je fasse dans mon modèle recette vers l'utilisateur de type sfGuardUser comme tu as fait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    relations:
        Utilisateur:
          class: sfGuardUser
          local: utilisateur_id
          foreign: id
          type: many
          foreignType: one
          foreignAlias: Recette

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Il y a plusieurs solutions:
    1. celle de Vince
    2. redéfinir la table sfGuardUser dans le shema.yml de ton application en y rajoutant les champs
    3. passer par le plugin sfForkedDoctrineApplyPlugin

    La quel prendre ? C'est fonction des besoins.

    Si tu dois permettre aux utilisateurs de gérer leurs comptes (cration, modification des mots de passes, de email, avec vérification) seul, la solution 3 est la tienne.

    Si l'administrateur fait tous ce qui est configuration, la 1 est plus propre côté plugin (pas de modification du plugin, donc pas de problème en cas d'évolution de celui-ci), la 2 est la plus simple à mettre en oeuvre, mais, si le plugin évolue beaucoup (peut probable pour celui-là), il faudra, peut-être, modifier le shema et le prendre en compte.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Une alternative à ta solution 2. serait de partir sur le code de Vince et d'ajouter une notion d'héritage par aggrégation.

    Vu que Doctrine gère (en partie correctement) l'héritage, autant s'en servir !!

    http://www.doctrine-project.org/docu...en/inheritance

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Par défaut
    J'ai opté pour la solution de mimi68 car j'ai besoin de gérer l'inscription de l'utilisateur, la vérif par email etc.

    Par contre petit bémol sur le plugin sfForkedDoctrineApplyPlugin ; il ne marche pas avec la version 5.0.0 de sfDoctrineGuard ...
    j'ai du installé une version plus ancienne de sfDoctrineGuard pour le faire marcher, en attendant la version compatible !.

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

Discussions similaires

  1. Restrictions utilisateurs sur mon application
    Par pierrotparma dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/09/2010, 13h03
  2. Réponses: 1
    Dernier message: 05/11/2009, 09h08
  3. Réponses: 2
    Dernier message: 11/08/2009, 15h15
  4. Réponses: 3
    Dernier message: 24/06/2009, 10h39
  5. Réponses: 1
    Dernier message: 21/12/2008, 00h08

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