summaryrefslogtreecommitdiff
path: root/src/model/Model.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/Model.php')
-rw-r--r--src/model/Model.php30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/model/Model.php b/src/model/Model.php
index 938e3dd..4c1fb4d 100644
--- a/src/model/Model.php
+++ b/src/model/Model.php
@@ -19,22 +19,26 @@ class Model extends DB
19 return($this->table); 19 return($this->table);
20 } 20 }
21 21
22 // setters (plusieurs en même temps) 22 // setters
23 public function hydrate(array $data) // $data = tableau associatif en entrée: nom_du_champ => valeur 23 public function hydrate(array $data): bool // $data = tableau associatif en entrée: nom_du_champ => valeur
24 { 24 {
25 foreach($data as $key => $value) 25 foreach($data as $key => $value)
26 { 26 {
27 // nom d'un setter, forme "setMachin()" 27 // nom du setter
28 $setterName = 'set' . ucfirst($key); // ucfirst met la première lettre en majuscule 28 // nom_du_champ devient setNomDuChamp
29 // détection 29 // on sépare les mots par des espaces, ucwords met la première lettre de chaque mot en majuscule, puis on supprime les espaces
30 if(method_exists($this, $setterName) && $value != NULL) // on trouve aussi la méthode is_callable() 30 $setter_name = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key))); // ucwords: première lettre de chaque mot en majuscule
31 if(method_exists($this, $setter_name))
31 { 32 {
32 //~ var_dump($value); 33 $this->$setter_name($value);
33 // on renseigne les propriétés des l'instance
34 $this->$setterName($value); // nom d'une méthode dans une variable
35 } 34 }
35 else
36 {
37 echo "debug: la méthode $setter_name n'existe pas\n";
38 return false;
39 }
36 } 40 }
37 return($this); 41 return true;
38 } 42 }
39 43
40 44
@@ -47,6 +51,8 @@ class Model extends DB
47 51
48 if($attributes !== null) // requête préparée 52 if($attributes !== null) // requête préparée
49 { 53 {
54 var_dump($sql);
55 var_dump($attributes);
50 $query = $this->db->prepare($sql); 56 $query = $this->db->prepare($sql);
51 $query->execute($attributes); 57 $query->execute($attributes);
52 return $query; 58 return $query;
@@ -66,10 +72,12 @@ class Model extends DB
66 $fields = []; 72 $fields = [];
67 $question_marks = []; // ? 73 $question_marks = []; // ?
68 $values = []; 74 $values = [];
75 //~ var_dump($this);
69 foreach($this as $field => $value) 76 foreach($this as $field => $value)
70 { 77 {
78 var_dump($field); var_dump($value);
71 // champs non renseignées et variables de l'objet qui ne sont pas des champs 79 // champs non renseignées et variables de l'objet qui ne sont pas des champs
72 // note: avec le !== (au lieu de !=) une valeur 0 passe le filtre 80 // note: avec le !== (au lieu de !=) une valeur 0 est différente de null
73 if($value !== null && $field != 'db' && $field != 'table') 81 if($value !== null && $field != 'db' && $field != 'table')
74 { 82 {
75 $fields[] = $field; // push 83 $fields[] = $field; // push