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 :

Mise en place de sfForkedDoctrineApplyPlugin [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut Mise en place de sfForkedDoctrineApplyPlugin
    Bonjour,

    Tout d'abord, j'ai cherché de la documentation sur ce plugin est à part le README (que je trouve incomplet) et deux trois sites utilisant des vieilles versions, j'ai rien trouvé.

    Donc j'ai installé le plugin sfDoctrineGuardUser puis le plugin sfForkedDoctrineApply. Mais j'aimerai savoir si vous trouviez l'implémentation que je fait correct :

    J'ai ma table Person qui contient l'id de l'user qui lui correspond et qui contient les informations sur l'utilisateur.
    J'ai la table sfGuardUser normal.
    Et la table sfGuardUserProfile par défaut aussi.

    Mais de cette façon, j'ai la table sfGuardUserProfile qui me sert strictement à rien si ce n'est avoir des champs en double entre sfGuardUser et sfGuardUserProfile.

    J'aimerai savoir qu'elle est la meilleur implémentation de ce plugin ?

  2. #2
    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 ne te manquerais pas une notion d'héritage ?

    Attention aussi, il y a plusieurs méthodes décrites dans le readme pour la création de la table user étendue, il ne faut en utiliser qu'une.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    J'ai essayé la notion d'héritage dans un projet test mais je me retrouve avec des champs en double entre sfGuardUser et sfGuardUserProfile tel que first_name ou last_name qui ne se mettent pas à jour lorsque j'édite à partir d'un module.

    Le schéma que j'ai essayé :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    Person:
      inheritance:
        type: column_aggregation
        extends: sfGuardUserProfile
      columns:
        institute_id:
          type: integer
          fixed: false
          primary: false
          notnull: false
          autoincrement: false
        institute_other:
          type: string(100)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        n2dwg_id:
          type: integer
          fixed: false
          primary: false
          notnull: false
          autoincrement: false
        node_id:
          type: integer
          fixed: false
          primary: false
          notnull: false
          autoincrement: false
        domain_id:
          type: integer
          fixed: false
          primary: false
          notnull: false
          autoincrement: false
        other_node_thematic:
          type: string(60)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        node_leading_id:
          type: integer
          fixed: false
          primary: false
          notnull: false
          autoincrement: false
        node_leading_status:
          type: enum(10)
          fixed: false
          unsigned: false
          values:
            - scientific
            - technical
          primary: false
          notnull: false
          autoincrement: false
        is_enabled:
          type: boolean
          fixed: false
          unsigned: false
          primary: false
          default: '0'
          notnull: true
          autoincrement: false
        is_epn_contact:
          type: boolean
          fixed: false
          unsigned: false
          primary: false
          default: '0'
          notnull: false
          autoincrement: false
        tel:
          type: string(30)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        fax:
          type: string(30)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        department:
          type: string(100)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        role:
          type: string(60)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        title:
          type: string(50)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        url:
          type: string(200)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        Domain:
          class: Domain
          local: domain_id
          foreign: id
          type: one
        Institute:
          local: institute_id
          foreign: id
          type: one
        N2dwg:
          local: n2dwg_id
          foreign: id
          type: one
        Node:
          local: node_id
          foreign: id
          type: one
        Node_5:
          class: Node
          local: node_leading_id
          foreign: id
          type: one
        Doc:
          local: id
          foreign: person_author_id
          type: many
        Doc_3:
          class: Doc
          local: id
          foreign: person_provider_id
          type: many
        Event:
          local: id
          foreign: person_responsible_id
          type: many
        Events:
          class: Event
          local: person_id
          foreign: event_id
          refClass: EventPerson
        Activities:
          class: Activity
          local: person_id
          foreign: activity_id
          refClass: PersonActivity
        Domains:
          class: Domain
          local: person_id
          foreign: domain_id
          refClass: PersonDomain
        Expertises:
          class: Expertise
          local: person_id
          foreign: expertise_id
          refClass: PersonExpertise
        Keywords:
          class: Keyword
          local: person_id
          foreign: keyword_id
          refClass: PersonKeyword
        N2dwgs:
          class: N2dwg
          local: person_id
          foreign: n2dwg_id
          refClass: PersonN2dwg
        Sciencecases:
          class: Sciencecase
          local: sciencecase_id
          foreign: person_id
          refClass: PersonSciencecase
        Resource:
          local: id
          foreign: person_id
          type: many
        Resource_4:
          class: Resource
          local: id
          foreign: person_contact_id
          type: many
        Resource_5:
          class: Resource
          local: id
          foreign: person_responsible_id
          type: many
        Resource_6:
          class: Resource
          local: id
          foreign: person_updater_id
          type: many
        Task:
          local: id
          foreign: person_id
          type: many
    En plus du problème de mise à jour de la table sfGuardUser, j'ai les FK tels que institute_id qui ne fonctionnent pas.

  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
    Tu as un conflit de version, probablement un sfFDAP trop vieux. Récupère la dernière version.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    J'ai réinstallé les deux plugin et j'ai toujours ce schéma :

    sfGuardUser :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    sfGuardUser:
      actAs: [Timestampable]
      columns:
        first_name: string(255)
        last_name: string(255)
        email_address:
          type: string(255)
          notnull: true
          unique: true
        username:
          type: string(128)
          notnull: true
          unique: true
        algorithm:
          type: string(128)
          default: sha1
          notnull: true
        salt: string(128)
        password: string(128)
        is_active:
          type: boolean
          default: 1
        is_super_admin:
          type: boolean
          default: false
        last_login:
          type: timestamp
      indexes:
        is_active_idx:
          fields: [is_active]
      relations:
        Groups:
          class: sfGuardGroup
          local: user_id
          foreign: group_id
          refClass: sfGuardUserGroup
          foreignAlias: Users
        Permissions:
          class: sfGuardPermission
          local: user_id
          foreign: permission_id
          refClass: sfGuardUserPermission
          foreignAlias: Users
    sfGuardUserProfile :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    sfGuardUserProfile:
      actAs:
        Timestampable: ~
      columns:
        user_id:
          type: integer
          notnull: true
          unique: true
        email_new:
          type: string(255)
          unique: true
        firstname:
          type: string(255)
        lastname:
          type: string(255)
        validate_at:
          type: timestamp
        validate:
          type: string(33)
      relations:
        User:
          class: sfGuardUser
          foreign: id
          local: user_id
          type: one
          onDelete: cascade
          foreignType: one
          foreignAlias: Profile
      indexes:
        validate:
          fields: [validate]
    Verbatim de l'installation :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [lvielle@pc-53 test]$ ./symfony plugin:instal sfForkedDoctrineApplyPlugin --install_deps
    >> plugin    installing plugin "sfForkedDoctrineApplyPlugin"
    >> sfPearFrontendPlugin downloading sfDoctrineGuardPlugin-5.0.0.tgz ...
    >> sfPearFrontendPlugin Starting to download sfDoctrineGuardPlugin-5.0.0.tgz (71,660
    >> sfPearFrontendPlugin bytes)
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin .
    >> sfPearFrontendPlugin ...done: 71,660 bytes
    >> sfSymfonyPluginManager Installation successful for plugin "sfDoctrineGuardPlugin"
    >> sfPearFrontendPlugin downloading sfForkedDoctrineApplyPlugin-1.5.6.tgz ...
    >> sfPearFrontendPlugin Starting to download sfForkedDoctrineApplyPlugin-1.5.6.tgz
    >> sfPearFrontendPlugin (45,935 bytes)
    >> sfPearFrontendPlugin ...done: 45,935 bytes
    >> sfSymfonyPluginManager Installation successful for plugin "sfForkedDoctrineApplyPlugin"
    >> sfSymfonyPluginManager Installing web data for plugin

  6. #6
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    J'ai trouvé une solution que je trouve un peu trop radicale mais qui fonctionne donc j'explique :

    En utilisant l'héritage, je me retrouvé avec une classe sfGuardUserProfile qui ne pouvait pas résoudre les clés étrangères ni retrouver l'objet Person associé au profil donc impossible de retrouver l'objet Institut associé à la Person qui été associé au profil.

    J'en est déduit que sfGuardUserProfile n'héritait pas des relations en quelques sortes donc j'ai plutôt redéfinit complétement la table sfGuardUserProfile dans mon schéma.

    A partir de là, je génère un module avec le sfGuardUserProfile et comme ça je peux facilement afficher toutes les informations sur une personne en ajoutant quelques getters. Plus qu'à faire les forms pour un nouvel utilisateur, pour l'inscription, pour l'édition et puis les filtres.

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

Discussions similaires

  1. [1.x] sfForkedDoctrineApplyPlugin mise en place
    Par guil182 dans le forum Symfony
    Réponses: 1
    Dernier message: 27/05/2010, 20h27
  2. [AD]Mise en place de Active Directory
    Par guiguisi dans le forum Windows Serveur
    Réponses: 9
    Dernier message: 29/07/2004, 09h50
  3. [C#] Mise en place d'un site multilingue
    Par regbegpower dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/03/2004, 20h15
  4. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 19h18
  5. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 12h04

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