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

Plugins PHP Discussion :

Routage avec le module sfGuardUser


Sujet :

Plugins PHP

  1. #21
    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
    Tu n'es pas obligé de lier un module à un modèle de données. Cette restriction prévaut pour les modules générés grâce à l'admin-generator, mais pas aux autres.

    Un module est un ensemble d'actions qui sont souvent liés à tes modèles de données, mais pas exclusivement.

    Tu as une tâche Symfony :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php symfony generate:module backend sfGuardUser
    qui te permet de construire automatiquement l'arborescence de ton module.

    Il te suffit ensuite d'ajouter ton action. Pour info, je tenterais bien de faire étendre ta classe d'action de celle utilisée dans le plugin, mais je ne garantis pas le résultat

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut
    OK merci j' ai compris le principe.

    Je vais maintenant m' attaque à mon autre problème de fond.

    Comment gérer les 3 niveaux de user dans mon shéma:

    http://www.developpez.net/forums/d97...s-utilisateur/

  3. #23
    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 : 63
    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
    Juste un point sur les méthodes du sfGuard.

    Certaines informations sont stockée, lors du login, dans l'objet myUser, que l'on aura pris la peine de faire hériter de sfGuardSecurityUser.

    On peut directement récupérer les informations :
    ->getUsername()
    ->getName()
    ->getEmail()

    Donc la syntaxe :
    $this->getUser()->getUsername()
    permet de récupérer le nom de login de l'utilisateur. Cepandant, ce sont des shunt de la méthode complète qui est :
    $this->getUser()->getGuardUser()->getUserName.
    Cette méthode implique la récupération de l'objet du modèle sfGuardUser (en effet, ->getGuardUser() retourne un pointeur vers un objet du modèle), insidieusement, cela génère une requête SQL pour récupérer l'objet du modèle qui correspond à l'utilisateur courant. Vu que sfGuard est bien écris, l'objet user est alors stocké dans l'objet myUser et les demande suivante ne passeront plus par tu SQL. La triologie de demande ci-dessus décrite ne générera qu'une requête SQL. Du moins pour l'instance. Lors de la requête suivante, il y aura de nouveau une requête.

    Il peut être intéressant d'utiliser le AttributHolder de l'objet sfBAsicSecurityUser (hérité du lointain objet sfUser à la base de l'arbre d'héritage), disponible dans le sfGuardSecurityUser pour y stocker des informations très régulièrement utilisée, ce en modifiant le myUser et notamment la méthode signIn. Attention à stocker vos information dans l'espace de nom 'sfGuardSecurityUser', qu'elle soient supprimées lors du logout de l'utilisateur.

    Pour récupérer l'Id de l'utilisateur, il est possible de le faire sans avoir à générer une requête par :
    $this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser')

    Les modifications, suivant le cas, peuvent être apportées au myUser ou aux objets du modèle en charge de récupérer les données.

    Je ne vois pas le problème de gestion des trois types d'utilisateurs, avec les objets et les héritages, tu peux facilement créer les méthodes nécessaires dans les différents niveaux des objets du modèles. Regarde bien l'ordre d'héritages des différents objets du modèle, tu va voir que les objet hérités voient leur code être enfant du modèle sfGuarUser, il est donc possible de définir des méthodes pour les trois (dans le sfGuardUser) où pour chaque objet individuellement.

Discussions similaires

  1. Probleme de retour chariot avec le module WriteExcel
    Par Jim_Nastiq dans le forum Modules
    Réponses: 3
    Dernier message: 20/08/2008, 16h23
  2. Erreur bizarre avec le module DBI
    Par Jim_Nastiq dans le forum SGBD
    Réponses: 7
    Dernier message: 12/04/2006, 18h28
  3. Probleme avec le module ParseExcel
    Par Jim_Nastiq dans le forum Modules
    Réponses: 5
    Dernier message: 10/04/2006, 14h36
  4. problème avec le module DBI
    Par vbcasimir dans le forum SGBD
    Réponses: 6
    Dernier message: 08/10/2005, 13h48
  5. problème avec un module
    Par vbcasimir dans le forum Modules
    Réponses: 2
    Dernier message: 29/08/2005, 16h59

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