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

Langage PHP Discussion :

[POO] Demande conseils sur la POO avec php5


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut [POO] Demande conseils sur la POO avec php5
    Bonjour a tou(te)s!
    je vais faire mon premier projet en php objet. Comme je manque encore de méthodes je voulais savoir si vous pouviez me conseiller sur les objets qu'ils seraient bon de définir pour gérer l'authentification de nos utilisateurs.
    Par exemple, si on considère que j'aurais des utilisateurs (plusieurs utilisateurs par entreprise cliente), des groupes, des droits d'accès différents selon les groupes (relation n à n).
    Dans cet exemple, je distingue facilement 4 objets: Client, Utilisateur, Groupe, Droit. Mais que faire pour les tables de liaisons comme Droit_par_Groupe?
    Et est-ce que mon raisonnement est bon ?
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  2. #2
    jnore
    Invité(e)
    Par défaut
    Avant de commencer en php, visiblement, il te faut construire ta base de données.
    Sur celle-ci tu devra créer des liens entre les utilisateurs et les différents groupes. Tu devrais faire un shéma à la main pour commencer. Ca parait bête mais c'est efficace.

  3. #3
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    j'ai déjà fait cette partie là de l'analyse. Modèles et bases de données prêtes.
    Après ce que je voudrais savoir c'est quels objets sont à définir? est-ce que l'on peut (il faut que cela vaille le coup) développer une application totalement objet avec php?
    Y a surement des pieges bateau que l'on peut eviter avec une technique et un peu d'experience...
    Enfin, sinon Jnore, je continue mes dessins... tant que je pense que l'analyse n'est pas completement finie.
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  4. #4
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Slu

    tu px partir sur un modele MVC ... ou tu auras une classe qui s'occupe de communiquer avec la BDD et des classes herites qui correspondent aux objets de ta BDD ...

    l'avantage avec une classe qui s'occupe de la bdd est que si tu change de type de bdd tu n'auras a modifier que cette classe ... et les autres ne bougerons pas, vu que tu n'utilisera que des requetes SQL

    @+

  5. #5
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    En effet si tu fais un site entièrement OBJET je te conseille d'utiliser le design pattern MVC. Sinon pour ton projet moi je ferais un objet user qui à des propriété qui définisse sont statut (utilisateur ou client) puis une propriété qui définie son niveau d'accès et une propriété pour l'id du groupe et puis tu stocke sa dans une session (que je protégerais) et puis tu peux faire tes teste en utilisant les classe 'M' (model) pour communiquer avec la base de données.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    N'oublie pas aussi d'utiliser des composants existants.

    Je prend l'exemple de PEAR\Auth qui gère l'athentification avec possibilité de l'intégrer dans divers scénarios d'architecture (BD, LDAP, FTP, ...)

    C'est essentiel d'avoir en tête la facon dont ces composants fonctionnent pour ne pas te planter dans ta conception initiale.

    A mon sens, évite les longues modélisations à la Mérise, mais construit plutot rapidement un premier prototype de ton application. En voyant fonctioànner ton prototype, tu pouras par la suite refactorer et mieux concevoir ton appli (Extrem programming et autre méthodes RAD)


  7. #7
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Merci de vos réponses.

    Je vais me renseigner du côté des modèles MVC et
    l'exemple de PEAR\Auth qui gère l'athentification
    ça aussi, parce que je ne vois pas ce que c'est.
    Pour la connexion à la base je pensais utiliser PDO. C'est bien?

    Lundi matin :
    Voilà un peu comment je comptais procéder:

    Ca ressemble à une structure MVC, mais je pense que ce sera moins propre .
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Auth t'offre les fonctions de création des mots de passes cryptés pour tes utilisateurs et surtout gère l'authentification des utilisaters à ton application. La seule contrainte qu'il t'impose c'est d'avoir une structure de persistance (une table dans ta bd par exemple) et de lui spécifier le moyen que tu utilise pour te connecter à ta bd. Par exemple, si les info de tes users sont stockés dans une bd, il peux utiliser le package d'abstration DB pour se connecter à tout type de BD.

    Pour ce qui est de PDO, c'est bien. Et pour faire plus éfficace, je te conseille de regarder le projet Propel. C'est un mapper object relationnel. C'est à dire qu'il peut te générer toutes les classes d'accès à la base de donnée et de manipulation des données une fois que ta structure de donnée est prète. La version 2.3 de Propel utilise en arrière plan PDO pour gérer les accès BD (he oui!). Si tu n'a aucune idée sur les mappeurs, le plus célèbre d'entre tous les surement Hibernate (java). Ce sont des mécanismes qui t'évitent d'écrire une nième fois les fonctions simples (create, read, update, insert)


  9. #9
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    ça semble intéressant mais j'ai bcp trop de problèmes à installer PEAR, Phing et Creole avant de pouvoir installer Propel.
    je cherche tuto simple pour mettre en place Propel

    Si il fait réellement la génération de tes classes et fonctions d'accès aux données.
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  10. #10
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut je cherche toujours des conseils ^^
    Enfin bon. Ce qui me pose problème c'est de savoir quels objets doivent être créés.
    Je pense faire les objets :Utilisateur, Client (société), c'est le minimum. De manière que je puisse les conserver d'une page à l'autre en linéarisant l'objet et en le stockant dans $_SESSION.
    Ce que je souhaitait faire c'est gérer mes "campagnes (publicitaires)", leurs différentes "diffusions", les mailings du client, ... etc mais je voudrais savoir comment , ou quand, les créer.??

    Si j'essaye de recapituler:
    -un user lambda accède au site et tombe sur la page d'authantification
    -lambda se log correctement
    -> donc je crée deux objets Utilisateur et Client avec les infos que je recupere dans la base.
    -lambda est authentifié sur le site, sa session est créée
    Mais quel est le mieux à faire ensuite pour avoir mes campagnes, diffusions, ...
    >> je crée les objets tous au même moment?
    >> je crée les objets au chargement de la page pour laquelle j'en ai besoin (exemple 1 Client a n campagnes, et, 1Client a n fournisseur; mais les fournisseurs et les campagnes pour ce client n'apparaissent pas sur la même page)?
    >> autres?
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Discussions similaires

  1. Demande conseil sur livre
    Par tibofo dans le forum Livres
    Réponses: 1
    Dernier message: 21/11/2008, 15h08
  2. conseils sur les intersections avec transparence
    Par nicolas02 dans le forum OpenGL
    Réponses: 7
    Dernier message: 25/01/2008, 09h35
  3. demande conseil sur architecture bdd
    Par halop dans le forum Administration
    Réponses: 2
    Dernier message: 16/07/2007, 15h52
  4. Réponses: 4
    Dernier message: 14/10/2006, 23h38
  5. demande conseil sur le ComboBox
    Par stoph23 dans le forum Flash
    Réponses: 1
    Dernier message: 01/06/2006, 20h56

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