Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 19h08   #1
Nouveau Membre du Club
 
Avatar de bambou
 
Inscription : mars 2004
Messages : 192
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : mars 2004
Messages : 192
Points : 36
Points : 36
Envoyer un message via AIM à bambou Envoyer un message via MSN à bambou Envoyer un message via Skype™ à bambou
Par défaut Gérer plusieurs rôles d'utilisateurs en PHP 5 objet

Bonjour,

Je dois mettre en place un extranet qui va gérer plusieurs rôles, deux principalement : l'utilisateur et l'administrateur. Par la suite, d'autres roles pourront être ajoutés.

Le principe est classique, l'interface ne sera pas la meme pour un administrateur que pour un utilisateur avec certaines parties communes et d'autres non.

De la meme façon, sur la base de données les admin et les utilisateurs n'accéderont pas aux memes informations

Je cherche donc à modéliser cela en php 5 objet. Je ai un peu d'expérience sur l'objet mais c'est assez léger et je me demande comment gérer ça.

Je suppose que je vais avoir de l'héritage et des interfaces, mais il faut que ce soit modulable.

J'ai tout d'abord pensé à créer un classe User et une classe Role. La classe user comprenant un attribut Role. Mais comme chaque role à des besoins spécifiques, je me suis orienté vers une autre solution.

J'ai ensuite pensé à une classe User puis 2 autres classes, Administrateur et Personnel qui étendent cette classe. Cette solution, plus satisfaisante mais aprés quelques recherche sur le net, j'ai vu qu'il était plutot conseillé d'utiliser des interfaces.

D'une part pourquoi? et d'autre part quel est, en gros, le principe à appliquer?

merci d'avance pour vos conseils.
bambou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 14h21   #2
Membre du Club
 
Développeur informatique
Inscription : février 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 70
Points : 61
Points : 61
Envoyer un message via MSN à f.lam
Salut
il n'y a pas a proprement dit, une solution meilleur que l'autre comme tu l'as pu constaté après tes recherches.

Le conseil que je peut te donner, c'est evidemment de piocher les meilleurs idées suivants tes besoins et ton modele.

L'utilisation d'une interface te permet en fait de modeliser l'ensemble de tes classes pour qu'elle aient la meme structure ce qui te dirige dans developpement.

Pour te donner le meilleur exemple de l'utilisation d'une interface que j'ai eu, un module de paiement. Lorsque tu developpes une boutique en ligne, tu as des produits que tu met dans le panier etc etc.
L'interface Payment decrit par exemple une méthode d'affichage, de recuperation de variable et d'execution.

Admettons que l'on ait 3 classes PaymentCheque, PaymentCB et PaymentPaypal issu de l'interface Payment; ces 3 classes possederont donc les 3 méthodes de l'interface et chacune des codes différents :
- show() : PaymentCheque affiche l'ordre auquel il faut envoyer le cheque, PaymentPaypal affiche le logo paypal etc etc.
- init() : PaymentCheque ne fait rien , PaymentCB recupere les codes de la banque, PaymentPayPal defini les numéros de transaction ...
- exe() : PaymentCheque affiche juste la phrase "paiement validé merci machin machin", PaymentCB te connecte en https a la banque, PaymentPaypal te dirige vers le site paypal ...

Bon c'est tres rapide comme description d'utilisation mais voila comment je justifie l'utilisation d'une interface.

Mais pour ton cas par exemple, l'Interface User decrit a priori des méthodes qui seront communes a Utilisateur et Adminstrateur mais si le code de chacun ne different pas tellement dans l'executon , il n'y a pas besoin d'en créer une. Utilisateur et Admin mettent tous les 2 a jours leurs infos de compte : a proiri c'est le meme update , Utilisateur et Admin ne possedent pas le meme menu, a priori pour recuper tous les menus, c'est la meme requete , 1 parametre est suffisant pour recupere les droits ... etc.

Il y aurait tellement de choses a dire mais il faudrait mieux cibler tes besoins.

Si tu veux plus d'aide , tu peux me MP, et m'exposer un peu plus l'interface que doit faire et toutes les possibiltes que peuvent faire tes utilisateurs.
f.lam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web