|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 724 ![]() |
Bonjour,
J'aurais besoin de vos conseils, sur le mapping classe/table en php. Ce que je voudrais faire, c'est pour une table comportant 2 champs : personne(nom,prenom) Créer une classe php class personne{ var $nom; var $prenom; } puis créer un objet personne : $pers1=new personne(); pers1->nom="aa"; pers1->prenom="aaa"; et enfin trouver un moyen pour que cette classe s'insère dans ma base de données, c'est à dire un insert avec comme champs le nom des attributs, et comme valeur leur valeur. je ne sais pas si ca existe déjà, où si il faut passer par autre chose... merci d'avance pour votre aide ! |
|
|
00
|
|
|
#2 | ||||
|
Membre chevronné
![]() Inscription : mai 2006 Messages : 521 ![]() |
Deja un membre comme toi devrais savoir que
![]() Ensuite tu devrais plutot utiliser des setter que tu pourrait ensuite modifier pour qu'il mettent a jour ton champ Code :
Code :
L'autre methode consiste a creer une methode save par exemple qui mets tous les champs a jour en une seule fois. |
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Étudiant Inscription : mai 2004 Messages : 52 ![]() |
C'est tout de même dangereux d'agir ainsi avec la base de données. Le nombre d'appel à la base sera vite conséquent si l'application prend une certaine ampleur ou bien encore si elle accueille beaucoup d'utilisateurs.
J'aurai plutot tendance à utiliser des pattern existants pour la POO (DAO notamment) dans le but de réaliser le mapping d'une part et la persistance de la données d'autre part. Après, si tu ne tiens pas à t'immiscer dans ce genre de DP, contente toi d'un simple personne->saveOrUpdate() plutot qu'une mise à jour en base à chaque setter réalisé. Ca limitera largement ces appels (imagine que ta personne ait 20 attributs, cela ferait tout de même un sacré nombre de requêtes à balancer pour mettre à jour tout l'objet. Voila, c'etait mon humble avis |
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Inscription : octobre 2004 Messages : 872 ![]() |
salut
et pourquoi pas utilisé des bibliothèque existante propel, adobd, sdo .... |
|
|
00
|
|
|
#5 | |
|
Membre chevronné
![]() Inscription : mai 2006 Messages : 521 ![]() |
Citation:
Mais c'etait juste pour expliquer exactement ce que vallica voulait faire. Mais il existe bien evidement des pattern bien plus adapte. |
|
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 724 ![]() |
Tout d'abord merci beaucoup pour vos réponses, et désolé pour les balises codes, j'ai rédigé le post en vitesse.
Effectivement j'ai des tables qui auront plus de 40 champs, d'où l'impossibilité de réaliser des appels successifs en bdd, de toute façon mon idée de départ est de réaliser cette opération en une seule requête. Ce que je voulais surtout savoir c'est quels sont les outils qui permettent de faire ce genre de choses assez "facilement", car je viens du monde J2EE, et je n'ai pas toutes les notions de vocabulaire (apparement vous appellez pattern ce que j'aurais appellé framework O/R) du monde php. Je vais essayer de me renseigner sur les noms qu'a cité jeff_!. |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Inscription : mai 2006 Messages : 521 ![]() |
pattern c'est pour design pattern qui n'ont rien a voir avec le langage.
Ce sont des "bonnes facon de faire". (tu en as sur a peu pres tout) Les plus connu ou en vogue sont singleton, factory, mvc, .... Le mapping O/R existe aussi en PHP. Regarde plutot Propel par exemple. |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 724 ![]() |
ca marche, je vais voir avec propel alors.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com