Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1371 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Génération dynamique des attributs d'une classe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Génération dynamique des attributs d'une classe

n°1425640
esox_ch
Posté le 15-08-2006 à 16:41:30  profilanswer
 

Bonjour,
 
Dans le cadre d'un projet PHP, je suis confronté au problème suivant :  
Une classe Object est "liée" à une table "Object" dans la base de donnée.
Cette table peut être à tout moment modifiée (comprendre par la : Ajout/Suppression/Renommage d'une colonne) par l'administrateur.
Un script PHP doit récuperer la liste des champs, construire l'objet Object et finalement proposer plusieurs actions à l'utilisateur (inserer un objet, en supprimer un,...).
Rien de bien compliqué en procédural, parcontre comment faire pour construire l'objet étant donné que je ne connais pas à l'avance les attributs?
En PHP je vois 2 solutions :
Un array attributs, contenant tous les couplets attributs => valeur ... c'est la solution un peu "procedural like"
Le constructeur construisant à la volée les attributs avec une boucle $this->$nomAttribut = $valeur;
Dans mon script je serais plutot enclin à utiliser la 2ème solution.
 
Ma question est la suivante :  
Comment est-ce qu'on peut faire ça en Java/C++ ? Parceque je dois admettre que j'ai jamais du faire un truc "dynamique" de la sorte, et qu'a part utiliser la solution du tableau, je vois pas trop....
 
Merci pour vos lumières


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 15-08-2006 à 16:41:30  profilanswer
 

n°1425641
betsamee
Asterisk Zeperyl
Posté le 15-08-2006 à 16:50:29  profilanswer
 

perso j'ai ete confronte a ce souci en C# et j'ai utilise la solution du tableau qui est a mon avis une bonne solution

n°1425648
esox_ch
Posté le 15-08-2006 à 17:02:29  profilanswer
 

Oui, d'autant plus que ça enlève pas mal de problèmes par la suite. Notamment le fait que quand je dois appeller un constructeur de copie, je peux direct parser l'array plutot que de rechercher la liste des colonnes & co..
Parcontre ce qui me derrange c'est l'optique pas très "orienté objet" ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1425849
rufo
Pas me confondre avec Lycos!
Posté le 16-08-2006 à 10:08:29  profilanswer
 

tiens, ça m'intéresse ça. Moi, aussi, je vais être confronté à ce pb prochainement en php. Sauf qu'en +, j'ai la notion d'arborescence : un objet est composé d'une arbo d'objets ayant chacun un nb d'attributs variable et dont le nom et le type varient... Moi aussi, je partais sur al notion de tableau d'objets...

n°1425856
jbourdello​n
Posté le 16-08-2006 à 10:30:43  profilanswer
 

Citation :

En PHP je vois 2 solutions :
Un array attributs, contenant tous les couplets attributs => valeur ... c'est la solution un peu "procedural like"
Le constructeur construisant à la volée les attributs avec une boucle $this->$nomAttribut = $valeur;
Dans mon script je serais plutot enclin à utiliser la 2ème solution.


 
c'est bizarre mais je vois pas réellement la différence entre les 2 solutions.... :??:

n°1425859
rufo
Pas me confondre avec Lycos!
Posté le 16-08-2006 à 10:36:47  profilanswer
 

jbourdellon a écrit :

Citation :

En PHP je vois 2 solutions :
Un array attributs, contenant tous les couplets attributs => valeur ... c'est la solution un peu "procedural like"
Le constructeur construisant à la volée les attributs avec une boucle $this->$nomAttribut = $valeur;
Dans mon script je serais plutot enclin à utiliser la 2ème solution.


 
c'est bizarre mais je vois pas réellement la différence entre les 2 solutions.... :??:


 
si j'ai bien compris, la première solution, c'est une classe avec un seul attribut : un tableau contenant tous les attributs + leur valeur issus de la BD
La 2ième solution, c'est le constructeur qui récupère les attributs + valeurs de la BD et les crée à la volée.


Message édité par rufo le 16-08-2006 à 10:37:04
n°1425866
jbourdello​n
Posté le 16-08-2006 à 10:48:39  profilanswer
 

ah oui c'est bien ce que j'avais compris, donc ou il y a un tableau avant la création et transmis au constructeur ou il y a un tableau comme attribut et on y insere les attributs.  
 
et le $this->$nomAttribut = $valeur ca marche ca ( je parle pour le nom de l'attribut ? , j'ai la flemme de tester)

n°1426032
esox_ch
Posté le 16-08-2006 à 14:21:41  profilanswer
 

Oui ça marche.
Finalement je vais implémenter un "mix" des 2 :
le constructeur recuperera un array associatif (nomVariable=>valeur), et donc cet array sera un attribut de la classe. Deplus il y a certains attributs "de base" qui seront de toutes façons presents (genre pour un utilisateur, un login, un password et un userID), ceci seront definis eux aussi par le constructeur en passant l'array à la moulinette


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Génération dynamique des attributs d'une classe

 

Sujets relatifs
[PYTHON] Trouver le path d'une classe / d'un moduleMS Visual Studio 2005 : contenu de classe inaccessible durant le debug
accents pas interprétés sous FF dans flash dynamique ?accents pas interprétés sous FF dans flash dynamique ?
Graphique et légende dynamiquePlugin Eclipse generation code (Akrogen)
Entête dynamiqueaffichage dynamique d'un calcul dans une balise (newbie inside)
ajout dynamique de variables dans un objetGénération de menus dynamiques et habilitations
Plus de sujets relatifs à : Génération dynamique des attributs d'une classe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR