Salut à tous, j'ai une petite question sur les bonnes pratiques à avoir en programmation orienté objet.

Quelle est la méthode la plus logique parmi ses trois ou une 4^^, sur l'utilisation des objets pour l'insertion en base de données. L'une je passe les valeurs à ajouter dans les paramètres de la méthode et l'autre je défini les valeurs des variables de l'objet


Méthode 1

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
class maClasse{
 
 var $id;
 var $valeur;
 
 function update($id,$valeur){
 
  $query = "UPDATE table SET valeur = '".$valeur."' WHERE id='".$id."' ";
  $result = mysqli_query ($link,$query);
 
  etc .....
 
 }
 
}
 
$maClasse = new maClasse;
$maClasse->update($id,$valeur);


Méthode 2

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
class maClasse{
 
 var $id;
 var $valeur;
 
 function update(){
 
  $query = "UPDATE table  SET valeur = '".$this->valeur."' WHERE id='".$this->id."' "
  $result = mysqli_query ($link,$query);
 
  etc .....
 
 }
 
}
 
$maClasse = new maClasse;
$maClasse->id = 10;
$maClasse->valeur = 'test';
$maClasse->update();
Un membre d'un autre forum m'a proposé cette 3ème méthode

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
class maClasse{
protected $id;
protected $valeur;
 
function __construct($id, $val){
...
}
 
function save(){
 if(this->existeDeja(){
$this->update();
}
else{
$this->insert()
}
}
 
protected function update(){
  $query = "UPDATE table  SET valeur = '".$this->valeur."' WHERE id='".$this->id."' "
  $result = mysqli_query ($link,$query);
  etc .....
}
 
protected function insert(){
  $query = "insert into table  ...' "
  $result = mysqli_query ($link,$query);
  etc .....
}
 
}
$maClasse = new maClasse(10, 'test');
$maClasse->save();


Merci